【发布时间】:2019-05-31 21:05:51
【问题描述】:
我正在使用 JSF 开发一个 Java Web 应用程序。我有一个会话范围的托管 bean。此 bean 在应用程序中的一个 jsp 中使用。呈现页面时似乎没有实例化bean。但是,当单击“commandButton”时,我能够看到为托管 bean 调用的构造函数。
属性绑定是使用 'h:inputText' 标记中的 value 属性完成的。 'h:commandButton' 的 action 属性绑定到 Managed Bean 中的方法之一。
Bean 类
public class EventController implements Serializable{
private String eventName;
private String eventVenue;
//Getters, Setter & No Arg Constructor
public String proceed(){
//Implementation for proceed
}
}
faces-config.xml
<managed-bean>
<managed-bean-name>eventController</managedBean>
<managed-bean-class>com.eventapp.eventController</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
event.jsp
<tr>
<td>
<label>event Name:</label>
</td>
<td>
<h:inputText value="#{eventContoller.eventName}">
</td>
<tr>
<tr>
<td>
<label>event Venue:</label>
</td>
<td>
<h:inputText value="#{eventContoller.eventVenue}">
</td>
<tr>
<tr>
<td>
<h:commandButton action="#{eventController.proceed}" value="Continue" />
</td>
<tr>
我希望在文本字段中看到空白值,但我看到的是“#{eventContoller.eventName}”。
【问题讨论】:
-
jsp?在 jsf 2.2 中...确定吗?这在 jsf 中已被弃用,取而代之的是 facelets。标签用于问题所在,这是 jsf 而不是 jsf-2.2 特定的东西,因此在您的问题中添加版本信息并使用基本的 jsf 标签是更好的做法
-
你实际上没有围绕 jsf 标签属性的引号?并且没有
h:form,客户端上的“view-source”显示html而不是jsf标签?而且您知道您可以使用注释而不是 xml 来声明 managedbeans? -
这只是我的客户端代码的一部分。我的原始代码中确实有
-
请阅读minimal reproducible example....始终创建一个,删除td,tr等...
标签: jsf