我不熟悉jsp。我尝试连接mysql和jsp页面,效果很好。但这是我需要做的。我有一个名为“balance”的表属性。检索它并使用它来计算一个名为“amount”的新值(我没有打印“余额”)。
<c:forEach var="row" items="${rs.rows}">
ID: ${row.id}<br/>
Passwd: ${row.passwd}<br/>
Amount: <%=Calculate.getAmount(${row.balance})%>
</c:forEach>
似乎不可能在jstl标记中插入scriptlet。
9条答案
按热度按时间eivnm1vs1#
也可以使用类似bean的静态接口
还有豆子
bjp0bcyl2#
在这个解决方案中,我们将值(通过核心标记)赋给一个变量,然后在scriplet中获取该变量的值。
v440hwme3#
在struts2或webwork2中,您可以使用:
然后参考
#tourLanguage
在jsp中9udxz4iz4#
基于@lukas answer,您可以通过反射使用bean和call方法:
将xhtml转换为命令按钮,例如:
6gpjuf905#
不能在el中直接调用静态方法。el将只调用示例方法。
至于您失败的scriptlet尝试,您不能将scriptlet和el混合使用。用这个或那个。由于Scriptlet在过去十年中一直不受欢迎,因此您应该坚持使用仅限el的解决方案。
你基本上有两个选择(假设两者都有)
balance
以及Calculate#getAmount()
是double
).只需将其 Package 在一个示例方法中。
用它来代替:
或者,宣布
Calculate#getAmount()
作为el函数。首先创建一个/WEB-INF/functions.tld
文件:使用方法如下:
i2byvkas6#
另一种方法是使用spring spel:
如果你跳过可选的
var="rowBalance"
那么<s:eval>
将表达式的结果打印到输出。wnavrhmk7#
el2.2具有调用方法的内置机制。更多:甲骨文网站。但它无法访问静态方法。尽管你仍然可以通过对象引用来调用它。但我使用另一种解决方案,如本文所述:从el调用静态方法
sg2wtvxw8#
如果java类是:
然后您可以在jsp页面中调用静态方法“getstatusdesc”,如下所示。
使用jstl usebean在jsp页面顶部获取类:
然后在需要时使用表达式语言调用函数:
z9gpfhce9#
如果你用的是struts2,你可以用
然后在html或html标记属性中引用“myvar”作为
${myVar}