我使用jsf 1.x.我不明白我的代码在哪里错了。
面-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>
我的豆子:
package 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}
似乎是空的......
你明白为什么吗?
感谢。
答案 0 :(得分:0)
在浏览器中右键单击打开的页面,然后选择查看源。您是否在HTML中看到生成的JSF标记的HTML输出或未解析的JSF标记?我敢打赌,这是后者。
您的JSP方法有点奇怪。我只是将userapp-main.jsp
页面的内容放在index-userapp.jsp
页面内,然后通过一个与FacesServlet
中定义的web.xml
的网址格式相匹配的网址调用该页面。如果是*.jsf
,那么您需要按http://localhost:8080/index-userapp.jsf?userType=grav打开页面。
如果有空间,我也会考虑升级。 JSP 1.2非常古老(已有10年历史),它目前处于2.2,它的继任者Facelets已经在大约1。5年前发布的Java EE 6中占据了一席之地。