【问题标题】:Dynamic Binding in jsfjsf中的动态绑定
【发布时间】:2011-03-06 07:08:22
【问题描述】:

我在使用 JSF 1.1 的 JSF 页面中遇到动态绑定问题

我只想让经理拥有动态的经理名称

<%String  manger="ManagerName";%>

上面的代码只是一个片段,它会作为请求参数出现

jsf 文件中的代码

<h:inputText id="street1" value="#{address.street1}"
binding = "#{<%=manager%>.billingStreet}" 
/>

这是我现在遇到的错误

enter code here

Caused by: org.apache.commons.el.parser.ParseException: Encountered "<" at line 1, column 3.
Was expecting one of:
    <INTEGER_LITERAL> ...
    <FLOATING_POINT_LITERAL> ...
    <STRING_LITERAL> ...
    "true" ...
    "false" ...
    "null" ...
    "(" ...
    "-" ...
    "not" ...
    "!" ...
    "empty" ...
    <IDENTIFIER> ...

    at org.apache.commons.el.parser.ELParser.generateParseException(ELParser.java:1895)
    at org.apache.commons.el.parser.ELParser.jj_consume_token(ELParser.java:1779)
    at org.apache.commons.el.parser.ELParser.Expression(ELParser.java:124)
    at org.apache.commons.el.parser.ELParser.AttrValueExpression(ELParser.java:96)
    at org.apache.commons.el.parser.ELParser.ExpressionString(ELParser.java:43)
    at org.apache.myfaces.el.ELParserHelper.parseExpression(ELParserHelper.java:83)
    ... 49 more

【问题讨论】:

    标签: jsp jsf binding ajax4jsf


    【解决方案1】:

    您不能混合使用 scriptlet &lt;% %&gt; 和 EL ${ }。使用其中一个。

    由于它来自请求参数,因此只需在 EL 中以${param.name} 访问它。如果 bean 在请求范围内,那么您可以通过${requestScope[param.name]} 访问它。所以:

    <h:inputText id="street1" value="#{address.street1}"
        binding = "#{requestScope[param.name].billingStreet}" 
    />
    

    对于会话范围的 bean,请改用 #{sessionScope}


    与问题/问题无关,这种设计/方法有异味。

    【讨论】:

      猜你喜欢
      • 2011-01-14
      • 2011-04-14
      • 2013-06-07
      • 1970-01-01
      • 2012-06-21
      • 1970-01-01
      • 1970-01-01
      • 2012-10-29
      • 1970-01-01
      相关资源
      最近更新 更多