我是JSF和Spring集成的初学者。我在一些youtube视频中看过如何开始开发。但我的应用程序非常简单,并始终返回null到托管bean。我使用了inputText,set方法为null。我需要一个会话实现?有什么问题?
XHTML
<p:outputLabel id="text1" value="Name:" />
<p:inputText id="teste" value="#{restAction.teste}" />
<p:commandButton value="save" actionListener="#{restAction.save}" />
托管Bean
@Named
@ManagedBean
@Scope("session")
public class RestAction {
String teste;
public void save(){
if(teste != null){
// ----
}
}
public String getTeste() {
return teste;
}
public void setTeste(String teste) {
this.teste = teste;
}
面对配置
<application>
<el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>
网络配置
</welcome-file-list>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
<context-param>
<description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
</web-app>
答案 0 :(得分:0)
对于JSF,请使用@SessionScoped
而不是@Scope("session")
,并确保<p:inputText>...<p:commandButton>
标记中包含<h:form>
。没有它,就不会向服务器发送任何内容供JSF处理。