Java 为什么我不能用jsf获取url参数?
我使用JSF1.x。我不明白我的代码哪里错了 faces config.xmlJava 为什么我不能用jsf获取url参数?,java,jsf,Java,Jsf,我使用JSF1.x。我不明白我的代码哪里错了 faces config.xml <managed-bean> <managed-bean-name>mainNavigationParametersHandlerBean</managed-bean-name> <managed-bean-class>com.test.MainNavigationParametersHandlerBean</managed-bean-class>
<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>
和我的jsp页面(实际上它使用jsf文件中的内容):
但是,在我的xhtml页面中,{mainNavigationParametersHandlerBean.userType}
似乎是空的
你明白为什么吗
谢谢。右键单击浏览器中打开的页面,然后选择“查看源”。您是否看到生成的JSF标记的HTML输出,或者HTML中未解析的JSF标记?我敢打赌是后者 您的JSP方法有点奇怪。我只是将
userapp main.jsp
页面的内容放在index userapp.jsp
页面中,并通过一个与FacesServlet
中定义的web.xml
的URL模式相匹配的URL调用该页面。例如,如果是*.jsf
,则需要通过打开页面
如果有空间,我也会考虑升级。JSP 1.2非常古老(已经有10年历史了),它现在是2.2,它的继承者Facelets已经在Java EE 6中取代了它的位置,Java EE 6是在1.5年前发布的。您的faces servlet映射到了什么模式?您是否检查了托管bean本身是否已初始化(例如,通过在其构造函数中放入println)?
public class MainNavigationParametersHandlerBean {
// url parameters
private String userType = "";
public String getUserType() {
return userType;
}
public void setUserType(String userType) {
this.userType = userType;
}
}
<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>
http://localhost:8080/index-userapp.jsp?userType=grav