JSF页面不从后端bean检索值

时间:2013-06-03 12:48:42

标签: ajax validation jsf-2

我正在根据下拉选项进行动态观看:

有代码:

<h:selectOneMenu value="#{controller.type}" >
   <p:ajax listener="#{controller.switchPanels}" update="panels" />
   <f:selectItem itemValue="1" itemLabel="option 1" />
   <f:selectItem itemValue="2" itemLabel="option 2" />
</h:selectOneMenu>

<h:panelGroup layout="block" id="panels">
   <h:panelGroup layout="block" rendered="#{controller.type == '1'}" >
   <h:inputText value="#{controller.value}" >
      <f:validateRegex pattern="^[0-9a-zA-Z ]*$" />
   </h:inputText>
   </h:panelGroup>
   <h:panelGroup layout="block" rendered="#{controller.type == '2'}" >
      Panel 2
   </h:panelGroup>
</h:panelGroup>

<h:commandLink action="#{controller.go}">Go</h:commandLink>

控制器:

@ViewScoped    
@ManagedBean
public class Controller {
   String type = "1";
   String value;

   // getters and setters

   public void switchPanels(AjaxBehaviorEvent event) {
      this.value = "";
   }

   public void go(){
   }
   ...
}

尝试这种情况:
- 在值字段中写入特殊字符
- 按Go(导致验证消息弹出)
- 尝试更改选择并再次重新选择同一面板

结果是即使我在switchPanels方法

中清除它,也不会清除该字段

请任何解释都有帮助

谢谢

0 个答案:

没有答案
相关问题