Динамическое связывание в JSF - PullRequest
1 голос
/ 06 марта 2011

У меня проблема с динамическим связыванием на странице JSF. Я использую JSF 1.1

Все, что я хочу, это чтобы менеджер имел имя менеджера Динамическое

<%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

1 Ответ

2 голосов
/ 06 марта 2011

Нельзя смешивать скриптлеты <% %> и EL ${ }.Используйте одно или другое.

Так как это происходит из параметра запроса, просто получите доступ к нему как ${param.name} в EL.Если бин находится в области запроса, то вы можете получить к нему доступ ${requestScope[param.name]}.Итак:

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

Для bean-объекта области действия вместо этого используйте #{sessionScope}.


Не связанный с проблемой / вопросом, этот дизайн / подход пахнет.

...