JSF中创建bean 请教各位一个问题,我想做这样的动作,在页面1中创建一个<h:commandLink>单击之后,触发一个托管bean: BeanA的动作方法Action1,在Action1中创建一个新的托管bean:BeanB,然后让这个BeanB的属性现在在Action1导航到的页面2中,请问这个动作如何完成,多谢指点 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我想没有必要在Action中再次创建BeanB。你应该利用BeanA转向相关的Action后,返回不同的对象,然后再由Action直接导向其他页面。不知道为什么要创建BeanB? 是这样子的,页面A输入参数,然后根据页面a的参数查询数据库,得到一个信息列表放到了一个Vector里面,我想在BeanA的Action1中生成这个Vector然后在下一个页面显示出来,faces-config.xml中有这样的定义<managed-bean> <managed-bean-name>linkVector</managed-bean-name> <managed-bean-class>java.util.Vector</managed-bean-class> <managed-bean-scope>request</managed-bean-scope></managed-bean>我是想在Action中根据参数生成这个linkVector,然后导航到页面2,再用datetable把它显示出来,Action1部分代码如下:FacesContext facesContext = FacesContext.getCurrentInstance();Vector vectInfo = (Vector)facesContext.getApplication().evaluateExpressionGet (facesContext, "#{linkVector}", Vector.class);vectInfo.add("aaaa");vectInfo.add("bbbb");return "Success";页面2:<rich:dataTable value="#{linkVector}" var="linkItem"><rich:column> <f:facet name="header"> <h:outputText value="column1"></h:outputText> </f:facet> <h:outputText value="#{linkItem}"></h:outputText> <f:facet name=""> <h:outputText value="column2"></h:outputText> </f:facet></rich:column></rich:dataTable>返回的结果为空 <managed-bean-scope>request </managed-bean-scope> 把這裡改成session試一下。 如果不改成session呢,我的意思是想用类似于response一个结果似的,把返回的结果显示在下一页,而不让它在session上保留 似乎不行把,JSF頁面中用response來寫資料的話,好像會報什麽“流已關閉”的錯誤,JSF中應該要使用session級的bean才可以實現,如果不想占用內存的話,可以參考:JSF页面跳转时清除Sessionhttp://blog.csdn.net/sunshinestation/archive/2008/07/16/2658825.aspx 可以先在session范围内做一个Map<String name,Object value>。然后,把要留到下个页面的对象都压进 Map。最后做一个 /* 的过滤,从Map里面把所有的对象都取出来,再用相同的name,和value压进 request范围。最后再把这个Map清空,就可以了。 大家帮忙解决一个问题 关于java导出excel的问题 jspsmart上传问题 在java中怎么样可以在内存中转换图片的格式呢? 弹出的层,可以提交带大数据类型的表单吗? JSF高手请进,myfaces扩展组件使用问题! 关于tomcat服务器的问题 连接池的一个小错误,急中。。。。。 JSP问题:如何读取字符串到表格? 如何把java数组作为参数传递给javascript函数? jsp 框架参数传递 弱问! tomcat+apache找不到JSP
你应该利用BeanA转向相关的Action后,返回不同的对象,然后再由Action直接导向其他页面。不知道为什么要创建BeanB?
<managed-bean>
<managed-bean-name>linkVector</managed-bean-name>
<managed-bean-class>java.util.Vector</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
我是想在Action中根据参数生成这个linkVector,然后导航到页面2,再用datetable把它显示出来,Action1部分代码如下:
FacesContext facesContext = FacesContext.getCurrentInstance();
Vector vectInfo = (Vector)facesContext.getApplication().evaluateExpressionGet
(facesContext, "#{linkVector}", Vector.class);
vectInfo.add("aaaa");
vectInfo.add("bbbb");
return "Success";页面2:<rich:dataTable value="#{linkVector}" var="linkItem">
<rich:column>
<f:facet name="header">
<h:outputText value="column1"></h:outputText>
</f:facet>
<h:outputText value="#{linkItem}"></h:outputText>
<f:facet name="">
<h:outputText value="column2"></h:outputText>
</f:facet>
</rich:column>
</rich:dataTable>
返回的结果为空
把這裡改成session試一下。
然后,把要留到下个页面的对象都压进 Map。
最后做一个 /* 的过滤,从Map里面把所有的对象都取出来,再用相同的name,和value压进 request范围。最后再把这个Map清空,就可以了。