【发布时间】:2011-04-20 15:01:02
【问题描述】:
我使用 jsf 1.x。我不明白我的代码哪里错了。
faces-config.xml
<managed-bean>
<managed-bean-name>mainNavigationParametersHandlerBean</managed-bean-name>
<managed-bean-class>com.test.MainNavigationParametersHandlerBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>userType</property-name>
<property-class>java.lang.String</property-class>
<value>#{param.userType}</value>
</managed-property>
</managed-bean>
我的豆子:
包 com.test;
public class MainNavigationParametersHandlerBean {
// url parameters
private String userType = "";
public String getUserType() {
return userType;
}
public void setUserType(String userType) {
this.userType = userType;
}
}
还有我的jsp页面(实际上它使用了jsf文件中的内容):
<jsp:root
xmlns:jsp="http://java.sun.com/JSP/Page"
xmlns:c="http://java.sun.com/jstl/core"
version="1.2">
<head>
</head>
<body>
<jsp:forward page="/WEB-INF/jsf/userapp-main.jsf" />
</body>
</jsp:root>
在 userapp-main.jsf 中,我有一个标题,我想在其中打印出该 url 的 userType 参数值:
http://localhost:8080/index-userapp.jsp?userType=grav
但是,在我的 xhtml 页面中,#{mainNavigationParametersHandlerBean.userType} 似乎是空的...
你明白为什么吗?
谢谢。
【问题讨论】:
-
你的 faces servlet 映射到什么模式?您是否检查了托管 bean 本身是否已初始化(例如通过在其构造函数中放置一个 println)?