rss· 投稿· 设为首页· 加入收藏· 繁體版

jsf常见问题总结

第一部分:

1.commandButton不能触发其Action,原因是commandButton放到了verbatim中
2.不能将InputText的值邦定到实体变量中,原因是设置了commandButton的immediate为true造成的
3.java.lang.NoSuchMethodError: org.apache.commons.lang.StringUtils.substringBeforeLast(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;是因为commons-lang.jar版本的问题
4.在panelTabbedPane中使用inputdate,无法正常使用,并且导致action无法执行,是因为panelTabbedPane与其它控件的兼容性较差
5如何在panelTabbedPane中加Tab Change事件,设置serverSideTabSwitch="true"并且添加PlmtManageBean需要实现TabChangeListener接口
 我是将TabChangeListener接口添加在backing bean上的,导致Tab Change事件发生时该bean老重新create,所以放弃使用
6.bean中获取另外一个bean中的属性
   FacesContext fc = FacesContext.getCurrentInstance();
  String userName = (String)fc.getApplication().createValueBinding("#{Person.userName}").getValue(fc);
    this.custId = custId;
  FacesContext fc = FacesContext.getCurrentInstance();
  BankBean bank = (BankBean) fc.getApplication().createValueBinding("#{bank}").getValue(fc); 
The same result you can reach using the Variable Resolver:
FacesContext fc = FacesContext.getCurrentInstance();
BankBean bank = (BankBean) fc.getApplication().getVariableResolver().resolveVariable(fc, "bank"); 

第二部分:

1.jsf中没有Page On Load事件
  解决办法:下载第三方组件jsfExt-0.9.0.jar,需要在web.xml中配置,并且增加配置文件onload_config.xml
1.myfaces的datatable导致,datamodel的rowIndex错误,即rowIndex总为rowCount。
 解决办法:更换myfaces的datatable为sun的datatable.
2.commandLink在datatable中有时无法提交
    解决办法:没有好办法,只能将immediate="true"
1.采用Input hidden在immediate="true"时无法获取backing bean中属性值
   解决办法:将Input hidden换为Output Text即可。
2.A4j中无法执行backing bean中的Action
  解决办法:是因为a4j放到了f:verbatim中
1.发现backing bean 中get属性总在某Action前
 解决办法:在jsp页面中将需要get的控件放到后面
1.panelTabbedPane切换页时总是执行backingbean
解决办法:原来是粗心导致的,panelTab的id中有一个中文数字,导致panelTabbedPane疯了 
1.commandbutton无法执行backingbean的方法
解决办法:是界面控件t:selectOneMenu绑定value问题导致的,我绑定了一个byte类型的变量,改为int类型就好了
1.a4j中总是刷新整个页面
解决办法:是因为在faces-config中配置了,a4j的action的返回页面。

顶一下
(0)
踩一下
(0)