直接使用 JSTL Expression Language
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpSession;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.el.ExpressionEvaluator;
import javax.servlet.jsp.el.VariableResolver;
import org.apache.commons.el.ExpressionEvaluatorImpl;
import org.apache.commons.el.VariableResolverImpl;
public class Main {
public static void main(String[] args) throws Exception {
PageContext pc = new PageContext() {
Mapmap = new HashMap ();
VariableResolver pResolver = new VariableResolverImpl(this);
public void forward(String arg0) throws ServletException,
IOException {
}
public Exception getException() {
return null;
}
public Object getPage() {
return null;
}
public ServletRequest getRequest() {
return null;
}
public ServletResponse getResponse() {
return null;
}
public ServletConfig getServletConfig() {
return null;
}
public ServletContext getServletContext() {
return null;
}
public HttpSession getSession() {
return null;
}
public void handlePageException(Exception arg0)
throws ServletException, IOException {
}
public void handlePageException(Throwable arg0)
throws ServletException, IOException {
}
public void include(String arg0) throws ServletException,
IOException {
}
public void include(String arg0, boolean arg1)
throws ServletException, IOException {
}
public void initialize(Servlet arg0, ServletRequest arg1,
ServletResponse arg2, String arg3, boolean arg4, int arg5,
boolean arg6) throws IOException, IllegalStateException,
IllegalArgumentException {
}
public void release() {
}
public Object findAttribute(String key) {
return map.get(key);
}
public Object getAttribute(String key) {
return map.get(key);
}
public Object getAttribute(String key, int arg1) {
return map.get(key);
}
public Enumeration getAttributeNamesInScope(int arg0) {
return java.util.Collections.enumeration(map.keySet());
}
public int getAttributesScope(String arg0) {
return 0;
}
public ExpressionEvaluator getExpressionEvaluator() {
return null;
}
public JspWriter getOut() {
return null;
}
public VariableResolver getVariableResolver() {
return pResolver;
}
public void removeAttribute(String key) {
map.remove(key);
}
public void removeAttribute(String key, int arg1) {
map.remove(key);
}
public void setAttribute(String key, Object value) {
map.put(key, value);
}
public void setAttribute(String key, Object value, int arg2) {
map.put(key, value);
}
};
pc.setAttribute("v", "World");
pc.setAttribute("x", "2");
pc.setAttribute("sysProp", System.getProperties());
pc.setAttribute("x.y", "requestScope x.y value");
StringBuilder sb = new StringBuilder();
sb.append("Hello ${v}!\n");
sb.append("5 - ${x} = ${5-x}\n");
sb.append("ava.version = ${sysProp['java.version']}\n");
sb.append("${requestScope['x.y']}\n");
ExpressionEvaluator ee = new ExpressionEvaluatorImpl();
Object s = ee.evaluate(sb.toString(), String.class, pc
.getVariableResolver(), null);
System.out.println(s);
}
}
/*
Hello World!
5 - 2 = 3
ava.version = 1.6.0_13
requestScope x.y value
*/
沒有留言:
張貼留言