怎样在jsf页面中直接调用后台管理bean中带参数的方法
比如我下面写的当我点这个按钮的时候调用后台管理bean中的getlist()方法, 当后台管理bean中的这个方法有参数,而这个参数要从页面中传递过去该怎么写呢???? 我需要的是单击按钮调用方法的同时传递参数,大侠们指点下了,在线等!!!
<h:commandButton action="#{pagebean.getlist}" value="显示"></h:commandButton>
10 个解决方案
#1
没用过jsf,一直都是struts
#2
没用过jsf,一直都是struts
#3
通过 ajax实现
#4
不能把参数通过http方式提交吗 在后台页面采用request.getParameter赋值给bean
#5
把参数通过http方式提交 获取页面值然后赋值给bean 你试试可以吗 我记得以前好像用过~~~
#6
标准是不支持action调用带参数的方法的
只能采用变通的办法。
比如用f:param传递参数给后台,这样,你就能在函数里获取了
只能采用变通的办法。
比如用f:param传递参数给后台,这样,你就能在函数里获取了
#7
但注意f:param只能对commandLink起作用,
用f:attribute比较好
例子如下:
<h:commandButton value="Press here" actionListener="#{myBean.action}">
<f:attribute name="attrname1" value="attrvalue1" />
<f:attribute name="attrname2" value="attrvalue2" />
...
</h:commandButton>
public void action(ActionEvent event)
{
String attrvalue1 = (String) event.getComponent().getAttributes().get("attrname1");
String attrvalue2 = (String) event.getComponent().getAttributes().get("attrname2");
...
}
用f:attribute比较好
例子如下:
<h:commandButton value="Press here" actionListener="#{myBean.action}">
<f:attribute name="attrname1" value="attrvalue1" />
<f:attribute name="attrname2" value="attrvalue2" />
...
</h:commandButton>
public void action(ActionEvent event)
{
String attrvalue1 = (String) event.getComponent().getAttributes().get("attrname1");
String attrvalue2 = (String) event.getComponent().getAttributes().get("attrname2");
...
}
#8
f:attribute还有个注意点就是别使用标准的组件属性名
比如:id,name,binding等等,会有冲突
比如:id,name,binding等等,会有冲突
#9
<a4j:commandButton value="编辑" oncomplete="Richfaces.showModalPanel('Edit_Panel'); return false; " reRender="PANEL_INFO,TABLE_LIST">
<f:param name="DEPART_ID" value="#{item.id}"></f:param>
<f:param name="OPERATION" value="EDIT"></f:param>
</a4j:commandButton>
后台 Map params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
String depart_ID=(String) params.get(StaticString.DEPART_ID) ;
String OPERATION=(String) params.get(StaticString.OPERATION);
<f:param name="DEPART_ID" value="#{item.id}"></f:param>
<f:param name="OPERATION" value="EDIT"></f:param>
</a4j:commandButton>
后台 Map params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
String depart_ID=(String) params.get(StaticString.DEPART_ID) ;
String OPERATION=(String) params.get(StaticString.OPERATION);
#10
可以用最简单的input button调用一个隐藏的t:commandLink
eg:
<input type="button" onclick="getElementById(' back').click();" value="back"
class="button_submit" />
<t:commandLink forceId="true" id=" back" action="back" value="#" style="display:none"
styleClass="button_submit" >
<f:param name="isTam" value="yes" />
</t:commandLink>
eg:
<input type="button" onclick="getElementById(' back').click();" value="back"
class="button_submit" />
<t:commandLink forceId="true" id=" back" action="back" value="#" style="display:none"
styleClass="button_submit" >
<f:param name="isTam" value="yes" />
</t:commandLink>
#1
没用过jsf,一直都是struts
#2
没用过jsf,一直都是struts
#3
通过 ajax实现
#4
不能把参数通过http方式提交吗 在后台页面采用request.getParameter赋值给bean
#5
把参数通过http方式提交 获取页面值然后赋值给bean 你试试可以吗 我记得以前好像用过~~~
#6
标准是不支持action调用带参数的方法的
只能采用变通的办法。
比如用f:param传递参数给后台,这样,你就能在函数里获取了
只能采用变通的办法。
比如用f:param传递参数给后台,这样,你就能在函数里获取了
#7
但注意f:param只能对commandLink起作用,
用f:attribute比较好
例子如下:
<h:commandButton value="Press here" actionListener="#{myBean.action}">
<f:attribute name="attrname1" value="attrvalue1" />
<f:attribute name="attrname2" value="attrvalue2" />
...
</h:commandButton>
public void action(ActionEvent event)
{
String attrvalue1 = (String) event.getComponent().getAttributes().get("attrname1");
String attrvalue2 = (String) event.getComponent().getAttributes().get("attrname2");
...
}
用f:attribute比较好
例子如下:
<h:commandButton value="Press here" actionListener="#{myBean.action}">
<f:attribute name="attrname1" value="attrvalue1" />
<f:attribute name="attrname2" value="attrvalue2" />
...
</h:commandButton>
public void action(ActionEvent event)
{
String attrvalue1 = (String) event.getComponent().getAttributes().get("attrname1");
String attrvalue2 = (String) event.getComponent().getAttributes().get("attrname2");
...
}
#8
f:attribute还有个注意点就是别使用标准的组件属性名
比如:id,name,binding等等,会有冲突
比如:id,name,binding等等,会有冲突
#9
<a4j:commandButton value="编辑" oncomplete="Richfaces.showModalPanel('Edit_Panel'); return false; " reRender="PANEL_INFO,TABLE_LIST">
<f:param name="DEPART_ID" value="#{item.id}"></f:param>
<f:param name="OPERATION" value="EDIT"></f:param>
</a4j:commandButton>
后台 Map params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
String depart_ID=(String) params.get(StaticString.DEPART_ID) ;
String OPERATION=(String) params.get(StaticString.OPERATION);
<f:param name="DEPART_ID" value="#{item.id}"></f:param>
<f:param name="OPERATION" value="EDIT"></f:param>
</a4j:commandButton>
后台 Map params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();
String depart_ID=(String) params.get(StaticString.DEPART_ID) ;
String OPERATION=(String) params.get(StaticString.OPERATION);
#10
可以用最简单的input button调用一个隐藏的t:commandLink
eg:
<input type="button" onclick="getElementById(' back').click();" value="back"
class="button_submit" />
<t:commandLink forceId="true" id=" back" action="back" value="#" style="display:none"
styleClass="button_submit" >
<f:param name="isTam" value="yes" />
</t:commandLink>
eg:
<input type="button" onclick="getElementById(' back').click();" value="back"
class="button_submit" />
<t:commandLink forceId="true" id=" back" action="back" value="#" style="display:none"
styleClass="button_submit" >
<f:param name="isTam" value="yes" />
</t:commandLink>