嗨,我有一个像这样的jsp页面
<%@ 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>
我把
<h:commandLink action="#{bean.action1}" value="Details">
<f:param name="selecteddisplayName" value="#{item.displayName}" />
</h:commandLink>
在标记内部,但是当单击链接时,调用了#{bean.action1},但参数item.displayName未传递给控制器。我试图将其更改为$ {item.displayName}然后我收到编译错误“value”不支持运行时表达式。
我的jsp页面出了什么问题?
在我的控制器中,我定义了私有字符串selecteddisplayName和getter / setters。
也许不能合作?
答案 0 :(得分:0)
如果你想在属性中设置值而不是
尝试<f:setPropertyActionListener value="" target=""/>
而不是<f:param name="selecteddisplayName" value="#{item.displayName}" />