日期:2014-05-18  浏览次数:20635 次

JSF中关于EL解析的问题
系统配置:sun的jsf   +   spring   +   hibernate
在faces-config.xml文件中如下内容:
<application>
<variable-resolver> org.springframework.web.jsf.DelegatingVariableResolver </variable-resolver>
</application>

jsp页面有如下内容:
<t:inputText   id= "divisionName "   value= "#{cm09304Bean.tmpExec.divisionName} "   size= "30 "     maxlength= "20 "   />
其中,cm09304Bean-〉backing   bean
            tmpExec-〉cm09304Bean的成员变量
            divisionName   -〉tmpExec的成员变量

现象:
三层的EL表达式好像不被支持,总是出错。但是把tmpExec也配成backing   bean问题就解决了。
配置如下:
<managed-bean>
      <managed-bean-name> tmpExec </managed-bean-name>
  <managed-bean-class> jp.go.smid.cm.model.TmpExec </managed-bean-class>
      <managed-bean-scope> request </managed-bean-scope>
</managed-bean>

<managed-bean>
                <managed-bean-name> cm09304Bean </managed-bean-name>
<managed-bean-class> jp.go.smid.cm.web.CM09304Bean </managed-bean-class>
                <managed-bean-scope> request </managed-bean-scope>
                <managed-property>
                        <property-name> tmpExec </property-name>
                        <value> #{tmpExec} </value>
                </managed-property>
  </managed-bean>

请问这是怎么回事?难道jsf就不支持三层以上的EL表达式?还是我用的variable-resolver不对,或者是sun的jsf与Spring的variable-resolver不兼容?哪位大侠能帮帮忙?!谢谢!

------解决方案--------------------
100层也支持的.我最多的时候用到了5级都可以正常使用的呀,不过配置是
把 <managed-bean-scope> request </managed-bean-scope>
改为 <managed-bean-scope> session </managed-bean-scope> .

------解决方案--------------------
三层肯定是支持的,我现在就有用到。你的出错信息是什么
------解决方案--------------------
你去确定
cm09304Bean-〉backing bean
中有tmpExec的get方法,和初始化??