a4j:actionparam 的使用
a4j:actionparam 组件是f:param和f:actionListener的组合,可以直接对某一个Manange Bean的property进行赋值,例如下面代码:
1. <rich:panel>
2. <a4j:commandButton value="Set Name to Alex" reRender="rep" >
3. <a4j:actionparam name="username" value="Alex" assignTo="#{userBean.name}"/>
4. </a4j:commandButton>
5. <rich:spacer width="20" />
6. <a4j:commandButton value="Set Name to John" reRender="rep" >
7. <a4j:actionparam name="username" value="John" assignTo="#{userBean.name}"/>
8. </a4j:commandButton>
9. </rich:panel>
10. <rich:panel>
11. <h:outputText id="rep" value="Selected Name:#{userBean.name}"/>
12. </rich:panel>
13. </h:form>
在actionparam标签中,name和value是必要的,此外还可以指定converter对value进行转化。
需要注意的是在server端,赋值是在UPDATE_MODEL 阶段进行的,因而如果在validate阶段,如果发生validate错误,那么model中的值是不会更新的。
此外,actionparam中的value可以是javascript代码,如下所示:
1. <h:form>
2. <a4j:commandButton value="Show Screen Size" reRender="infoPanel">
3. <a4j:actionparam name="w" value="screen.width"
4. assignTo="#{userBean.screenWidth}" noEscape="true" />
5. <a4j:actionparam name="h" value="screen.height"
6. assignTo="#{userBean.screenHeight}" noEscape="true" />
7. </a4j:commandButton>
8.
9. <rich:panel id="infoPanel">
10. <h:panelGrid columns="2">
11. <h:outputText value="Width:" />
12. <h:outputText value="#{userBean.screenWidth}"/>
13. <h:outputText value="Height:" />
14. <h:outputText value="#{userBean.screenHeight}"/>
15. </h:panelGrid>
16. </rich:panel>
17. </h:form>
这些代码的作用是显示当前屏幕的宽度与高度,使用screen对象获得值,需要注意的是,必须将noEscape的值设置为true方可。在上面的代码中,第三行的actionparam对userBean.name赋值,参数名称是username,值是Alex。
a4j:actionparam 组件是f:param和f:actionListener的组合,可以直接对某一个Manange Bean的property进行赋值,例如下面代码:
1. <rich:panel>
2. <a4j:commandButton value="Set Name to Alex" reRender="rep" >
3. <a4j:actionparam name="username" value="Alex" assignTo="#{userBean.name}"/>
4. </a4j:commandButton>
5. <rich:spacer width="20" />
6. <a4j:commandButton value="Set Name to John" reRender="rep" >
7. <a4j:actionparam name="username" value="John" assignTo="#{userBean.name}"/>
8. </a4j:commandButton>
9. </rich:panel>
10. <rich:panel>
11. <h:outputText id="rep" value="Selected Name:#{userBean.name}"/>
12. </rich:panel>
13. </h:form>
在actionparam标签中,name和value是必要的,此外还可以指定converter对value进行转化。
需要注意的是在server端,赋值是在UPDATE_MODEL 阶段进行的,因而如果在validate阶段,如果发生validate错误,那么model中的值是不会更新的。
此外,actionparam中的value可以是javascript代码,如下所示:
1. <h:form>
2. <a4j:commandButton value="Show Screen Size" reRender="infoPanel">
3. <a4j:actionparam name="w" value="screen.width"
4. assignTo="#{userBean.screenWidth}" noEscape="true" />
5. <a4j:actionparam name="h" value="screen.height"
6. assignTo="#{userBean.screenHeight}" noEscape="true" />
7. </a4j:commandButton>
8.
9. <rich:panel id="infoPanel">
10. <h:panelGrid columns="2">
11. <h:outputText value="Width:" />
12. <h:outputText value="#{userBean.screenWidth}"/>
13. <h:outputText value="Height:" />
14. <h:outputText value="#{userBean.screenHeight}"/>
15. </h:panelGrid>
16. </rich:panel>
17. </h:form>
这些代码的作用是显示当前屏幕的宽度与高度,使用screen对象获得值,需要注意的是,必须将noEscape的值设置为true方可。在上面的代码中,第三行的actionparam对userBean.name赋值,参数名称是username,值是Alex。