0
您好我有這樣<c:forEach>和<h:commandLink>無法一起工作?
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Compact Output</title>
</head>
<body>
<f:view>
<h:form>
<c:forEach items="${bean.itemlist}" var="item">
<h:panelGrid columns="1" id="panel1">
<h2><c:out value="${item.displayName}" /></h2>
<img src="<c:out value="${item.thumbnailURI}"/>" height="600" width="800" />
<h:commandLink action="#{bean.action1}" value="Details">
<f:param name="selecteddisplayName" value="#{item.displayName}" />
</h:commandLink>
</h:panelGrid>
</c:forEach>
</h:form>
</f:view>
</body>
</html>
一個jsp頁面,我把
<h:commandLink action="#{bean.action1}" value="Details">
<f:param name="selecteddisplayName" value="#{item.displayName}" />
</h:commandLink>
,在標籤內,但是當點擊鏈接時,#{} bean.action1接到電話,但參數項.displayName不傳遞給控制器。我試圖將其更改爲$ {item.displayName},然後編譯錯誤「value」不支持運行時表達式。
我的jsp頁面有什麼問題?
在我的控制器中,我定義了private String selecteddisplayName和getter/setters。
也許不能一起工作?
我試了一下沒有工作。在該bean中的的值爲空,且該bean中的值爲「」的。沒有太大的區別... –
flyasfish
2012-07-31 23:42:51
我想這是混合使用$ {}和#{}的問題,當評估表達式#{item.displayName}時,該值尚未存在,生成的html可以證明這一點。你可以在html中看到這個值是「」。 Details – flyasfish 2012-08-01 03:47:53
但是,當我將其更改爲$ {item.displayName}時,eclipse會發出編譯錯誤「value」不支持運行時表達式。當在服務器上運行時,我得到錯誤:根據標記文件中的TLD或屬性指令,屬性值不接受任何表達式。如何解決這個問題? – flyasfish 2012-08-01 03:53:00