我刚开始使用JSTL作为我的项目,但很遗憾地说这对我来说真的很混乱。
我最初使用Number.java
package com.mycompany
public class Number {
private int total;
public static int add (int x, int y) {
return total;
}
在showNumber.jsp
我可以使用
<%@page import= "com.mycompany.Number" %>
并内联使用<%= Number.add(5,6) %>
如何在JSTL
中重写此部分?
这也可以导入课程Number.java
吗?
我尝试了很多不同的东西,例如<c:out value="${Number}.add(5,6)" />
,但仍无法找到解决方案。谢谢。
编辑:
我使用@ Victor的方法,它确实有效。在我的例子中,我需要重用spring框架中的其他变量,将NumberTwo.java
和totalTwo
作为私有变量。并为此totalTwo
添加了“100”。
对于需要使用它的src是<spring:param name="secondNumber" value ="${NumberTwo.totalTwo}" />
。
然而,直觉上我使用(int) pageContext.getAttribute("NumberTwo.totalTwo")
,它总是返回给我null
。
另一种解决方法是
第一个<c:set var="result" value="${NumberTwo.totalTwo}" />
然后<% String result = (String) pageContext.getAttribute("result"); %>
然后<%= Number.add(result, 100) %>
答案 0 :(得分:1)
不幸的是,不可能随意使用JSTL调用方法,JSTL的功能非常有限:http://docs.oracle.com/javaee/5/tutorial/doc/bnalg.html。但仍然可以使用 Number 类。解决方法:
<%@page import= "com.mycompany.Number" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
pageContext.setAttribute("addResult", Number.add(7, 8));
%>
<html>
<body>
JSP 1.x: Result is: <c:out value="${addResult}" /><br/>
JSP 2.x: Result is: ${addResult}
</body>
</html>
使用 pageContext.setAttribute(),方法结果存储在页面上下文中,JSTL标记可以访问存储在该上下文中的值(属性)。
注意:第二个输出行“结果是:$ {result} ”仅适用于JSP 2 afaik。
答案 1 :(得分:0)
您可以使用'usebean'标记,如以下示例所示:
<?xml version="1.0"?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="1.2">
<!-- UseBean.jsp
Copyright (c) 2002 by Dr. Herong Yang
-->
<html><body>
<jsp:directive.page import="CacheBean"/>
<jsp:useBean id="b" class="CacheBean"/>
<jsp:setProperty name="b" property="text" value="Hello world!"/>
Property from my Bean:
<jsp:getProperty name="b" property="text"/>
<br/>
Info from my Bean:
<jsp:expression>b.getInfo()</jsp:expression>
</body></html>
</jsp:root>
其中:
/**
* CacheBean.java
* Copyright (c) 2002 by Dr. Herong Yang. All rights reserved.
*/
public class CacheBean {
private String text = "null";
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getInfo() {
return "My JavaBean - Version 1.00"
}
}
答案 2 :(得分:0)
请查看BalusC答案中的EL功能
Hidden features of JSP/Servlet
也
看看“在EL中使用自定义方法”
http://www.roseindia.net/jstl/jstl-el.shtml
看看中的功能
http://docs.oracle.com/javaee/5/tutorial/doc/bnahq.html