2012-04-18 45 views
1

我正在使用jstl。jstl if-else循環參數傳遞

我該如何使用測試用例的參數。

<c:when test="${myBean.method=='1'}"> 

</c:when> 

我想通過perameter的方法類似

<c:when test="${myBean.method('para')=='1'}"> 

</c:when> 
+0

你可以試試... myBean.method(「para」)...? //更改'開' – iMysak 2012-04-18 11:00:36

+0

我遇到以下錯誤:javax.faces.view.facelets.FaceletException:Error解析/consumer/HomePage.xhtml:錯誤跟蹤[line:11]元素類型「c:when」必須後跟e ither屬性規範,「>」或「/>」 at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:425) at com.sun.faces.facelets.compiler.SAXCompiler。 doMetadataCompile(SAXCompiler.java:408) – KSHiTiJ 2012-04-18 11:09:56

回答

-1

你可以調用一個函數,在JSTL 2.0的參數。但是,你應該建立一個像TLD下面:

<function> 
    <name>method</name> 
    <function-class>MyBean</function-class> 
    <function-signature> 
     java.lang.String method(java.lang.String) 
    </function-signature> 
</function> 

然後,你可以訪問

<c:when test="${cx:method('para')} eq '1'}"> 
</c:when> 

通過這個鏈接,完整的例子。 JSTL 2.0 Example

+0

您必須定義您的方法public static否則將無法以這種方式工作.. – Shehzad 2012-04-18 11:14:49

+0

我得到錯誤,如javax.el.E​​LException:Function'x:getMethod'not found at org .apache.el.lang.ExpressionBuilder.visit(ExpressionBuilder.java:175) at org.apache.el.parser.SimpleNode.accept(SimpleNode.java:145) at org .apache.el.parser.SimpleNode.accept(SimpleNode.java:148) – KSHiTiJ 2012-04-18 11:41:21

+0

您是否嘗試將該方法標記爲@ user1270995所說的靜態方法? – Phani 2012-04-18 13:11:19