我在视图中有一个表单,它执行自动完成和gmap本地化的ajax部分处理.我的支持bean实例化一个实体对象"Address",并且该对象引用了表单的输入:
@ManagedBean(name="mybean")
@SessionScoped
public class Mybean implements Serializable {
private Address address;
private String fullAddress;
private String center = "0,0";
....
public mybean() {
address = new Address();
}
...
public void handleAddressChange() {
String c = "";
c = (address.getAddressLine1() != null) { c += address.getAddressLine1(); }
c = (address.getAddressLine2() != null) { c += ", " + address.getAddressLine2(); }
c = (address.getCity() != null) { c += ", " + address.getCity(); }
c = (address.getState() != null) { …Run Code Online (Sandbox Code Playgroud) 这是我正在编写的一些 html,允许使用对话框添加类别:
<p:dialog id="newCategoryDlg" header="Add New Category" widgetVar="newCategoryDialog" resizable="false">
<h:form id="newCategoryForm">
<p:panelGrid id="displayNewCategory" columns="2" cellpadding="4" style="margin:0 auto;">
<h:outputText value="Category Name :"></h:outputText>
<p:inputText value="#{categoryController.newCategory.name}"
required="true" requiredMessage="Please Enter a Category ID!" />
<f:facet name="footer">
<p:commandButton value="Submit" update=":form:categoryTable"
oncomplete="newCategoryDialog.hide();"
actionListener="#{categoryController.addCategory}">
<p:resetInput target="displayNewCategory" />
</p:commandButton>
<p:commandButton type="reset" value="Reset"></p:commandButton>
</f:facet>
</p:panelGrid>
</h:form>
</p:dialog>
Run Code Online (Sandbox Code Playgroud)
现在,无论出于何种原因,无论我使用哪个小部件或标识符,“”似乎都不起作用。我想要的只是旧的输入条目在提交后消失。我究竟做错了什么?
我有一个JSF/PrimeFaces表单页面设置来编辑一些配置细节.底部是提交和取消按钮实现为CommandButton."取消"按钮如下所示:
<p:commandButton
action="priorPage.xhtml?faces-redirect=true"
value="Cancel" />
Run Code Online (Sandbox Code Playgroud)
问题是视图bean仍然会对输入到表单中的数据进行更多处理,而不是我想要的.它不会更新数据库中的任何内容,但是如果(比方说)我将字符串输入到正在查找bean中的数字的字段中,它仍然会产生错误.
当然,我的解决方案的一部分是让bean优雅地处理那种糟糕的数据,我正在研究它.但是我也想调整那个按钮,这样它就可以将用户带到前一页.我可以设置一些属性来阻止表单被处理吗?