2012-02-15 25 views
3

環境での式の値を取得します。私は複雑なテーブルを作成するためにJSTL "foreach"が必要な特別な状況があります( "a4j:reapeat"は使用できません)。はプログラムJSTL ELコンテキスト

カスタムコンポーネントの例:私のカスタムコンポーネントのレンダラーに

<c:forEach var="cell" items="#{line.cellDescriptorList}" > 
     <rich:column> 
      <k:inputText onkeyup="#{cell.onKeyup}" id="#{cell.jsfId}" value="#{cell.wert.wert}"> 
       <f:converter converterId="PercentageConverterBigDecimal" /> 
      </k:inputText> 
     </rich:column> 
</c:forEach> 

私は#{}のセルに式を評価する必要があります。この変数は、JSTL(JSP?)のELコンテキストに格納されます。 ELコンテキストまたはFacelets JSF ELコンテキストの式の実行はうまく動作します。 しかし、私はJSTL ELコンテキストにプログラムでアクセスできますか? JSF ELコンテキストの

例:FaceletsのELコンテキストhereため

final ELContext elContext = facesContext.getELContext(); 
final Application application = facesContext.getApplication(); 
ExpressionFactory expressionFactory = application.getExpressionFactory(); 
ValueExpression exp = expressionFactory.createValueExpression(elContext, expression, Object.class); 
Object result = exp.getValue(elContext); 

例。

JSTL ELコンテキストの解決策を教えてください。

ありがとうございます。 Kai

答えて

0

このJSPは役立つ情報を示していますか?

<%@ page import="java.util.Arrays,javax.el.*" %> 
<jsp:useBean id="list" class="java.util.ArrayList" /> 
<jsp:useBean id="newList" class="java.util.ArrayList" /> 
<% 
    list.addAll(Arrays.asList("red","green","blue")); 
    newList.addAll(Arrays.asList("brown", "yellow", "purple")); 
    JspFactory jspFactory= JspFactory.getDefaultFactory(); 
    ExpressionFactory expFactory = jspFactory.getJspApplicationContext(application).getExpressionFactory(); 
    ELContext elContext = pageContext.getELContext(); 
    ValueExpression valueEx = expFactory.createValueExpression(elContext, "${list}",String.class); 
%> 
My favorite colors are ${list[0]}, ${list[1]}, and ${list[2]}.<br/> 
<% valueEx.setValue(elContext, newList); %> 
No, I changed my mind. I like ${list[0]}, ${list[1]}, and ${list[2]}. 
関連する問題