JSF页面.当弹出的dialog信息框中H:inputText验证未通过,再打开dialog,如果使这个dialog是初始无数据状态?

朝闻道 2011-12-28 02:56:55
JSF页面.当弹出的dialog信息框中H:inputText验证未通过,再打开dialog,如果使这个dialog是初始无数据状态?

流程是,但我点击button按钮,打开这个dialog页面,输入错误的信息,jsf会验证我的信息,并用h:message 输出验证信息.
这个时候,我关闭掉dialog,问题就来了.......
上次输入的错误信息仍然是存在的.

用JS脚本的确可以清空掉.但问题是如果dialog里有非常多的数据的话,这样说不可以的.公司我也问了下领导,领导不同意.我只能重新想法子.

现在我的目的就是想....能不能在点击弹出dialog的那个button的时候,让dialog重新初始化一次,或者说......重置这个dialog.

能不能在点击弹出dialog的那个button的时候,让dialog重新初始化一次,或者说......重置这个dialog.

或者,各位有什么比较好的解决方案?求赐教.
下面是代码片段:
弹出dialog 的btn的代码:
(oncomplete里的JQuery代码请无视吧.......领导不让这么写.)
<DIV align="center">
<h:panelGrid columns="10" id="penelGrid1"
columnClasses="column2,column2,column2,column2">
<p:commandButton title="第一个Dialog" value="第一个Dialog第一个Dialog"
oncomplete="firstDlgVar.show();$('#userNameId').val('');$('#realNameId').val('');" update="firstDlgId"
actionListener="#{dialogBean.onClear}"
image="ui-icon ui-icon-wrench">
</p:commandButton>
</h:panelGrid>
</DIV>

dialog的页面代码:
<div align="left">
<h:panelGrid id="firstDlgPanelGridId" width="290" columns="2">

<h:outputText value="UserName:" />
<p:inputText value="#{dialogBean.userName}" required="true"
label="UserName" id="userNameId"
validator="#{dialogBean.checkUserName}">
<f:validateLength maximum="5" minimum="3" for="userNameId" />
<p:ajax event="blur" update="userNameMessage" />
</p:inputText>
 <p:message for="userNameId" id="userNameMessage" />


<h:outputText value="RealName:" />
<p:inputText value="#{dialogBean.realName}" required="true"
label="RealName" id="realNameId"
validator="#{dialogBean.checkRealName}">
<f:validateLength maximum="5" minimum="3" for="realNameId" />
<p:ajax event="blur" update="realNameMessage" />
</p:inputText>
 <p:message for="realNameId" id="realNameMessage" />
</h:panelGrid>
</div>

Bean里倒没什么代码,除了报错的,就没啥了.
// 验证username重复性
public void checkUserName(FacesContext context, UIComponent component,
Object value) throws ValidatorException {
String regex = "^[A-Za-z]+$"; // 正则表达式
if ("admin".equals(value.toString())) {
// 重复性验证
throw new ValidatorException(new FacesMessage(
FacesMessage.SEVERITY_ERROR, null, "后台验证:此用户名已经存在."));
} else if (!((value.toString()).matches(regex))) {
// 正则验证
throw new ValidatorException(new FacesMessage(
FacesMessage.SEVERITY_ERROR, null, "后台正则验证:此用户名必须为英文"));
} else {
}
}


求赐教!!!!!!!!!!!!!!!!!!!分不是问题啊啊啊啊啊!
...全文
198 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
mm1212a 2012-12-11
  • 打赏
  • 举报
回复
你好,请问问题解决了么,能分享一下答案么

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧