Я новичок в JSF и у меня проблемы с вызовом произвольных методов через EL.
Согласно тому, что я прочитал, версия 2.1 языка унифицированных выражений, включенного в Java EE 6, поддерживает вызов произвольных методов и передачу им аргументов.
Я использую MyFaces2.0.3, JRE6Up21, Tomcat 6.0.29 и Eclipse.
У меня есть следующий фрагмент в лицевой стороне:
<h:form>
<p>
<h:link outcome="NextPage" value="Link for Next Page">
<f:param name="word1" value="hello" />
<f:param name="word2" value="world" />
</h:link>
</p>
</h:form>
и в лицевой стороне NextPage.xhtml
<h:form>
<p>
This is the method invocation #{model.printArgs(param.word1,param.word2)}
</p>
</h:form>
Model
- это управляемый компонент (в области запроса), который имеет этот метод printArgs
, который возвращает конкатенацию строк word1 и word2.
@ManagedBean
@SessionScoped
public class Model {
public String printArgs(String word1, String word2) {
String result = "No arguments??????";
if (null != word1 && !word1.isEmpty() && null != word2 && !word2.isEmpty()) {
result = word1+" "+word2;
}
return result;
}
}
Когда я нажимаю на ссылку, URL-адрес http://localhost:8080/RegJSF/faces/NextPage.xhtml?word1=hello&word2=world
но я получаю ошибку
org.apache.el.parser.ParseException:
Обнаружено "" ("" ("" в строке 1,
колонка 25. Ожидал одного из: "}"
... "." ... "[" ... ">" ... "gt" ...
"<" ... "lt" ... "> =" ... "ge" ...
"<=" ... и т. д. </p>
Если я удаляю #{model.printArgs(param.word1,param.word2)}
, загружается NextPage, поэтому проблема заключается в вызове метода.
В чем здесь проблема? Это проблема конфигурации?
Примечание Та же проблема, если я использую Mojarra2.0.3
Может кто-нибудь помочь, пожалуйста?
Спасибо!