在jsp页面中获取action中的值:
1.写一个action类OgnlAction类:
需要注意的地方:
如果在aciton中直接使用ognl表达式,将值存储的值栈中,是不能通过跳转将值传到jsp页面中的。因为result标签的默认跳转方式为请求转发方式,所以这里我们将值存储到并行域中。
import javax.servlet.http.HttpServletRequest; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionSupport; import ognl.OgnlContext; public class OgnlAction extends ActionSupport{ public String save1(){ /*OgnlContext context=new OgnlContext(); //将值存到值栈中 context.put("name","美美");*/ //放到并行域中 HttpServletRequest request=ServletActionContext.getRequest(); request.setAttribute("name", "zhangsan"); System.out.println("ognlAction的save方法执行了..."); return SUCCESS; } }
2.写一个jsp页面来获取action中的值:
需要注意的地方:
这里不能直接写“#属性名”,而应该写为“#request.属性名”才可以获取到值。
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@taglib prefix="s" uri="/struts-tags"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> <h3>Ognl表达式</h3> <s:property value="'aaa'.length()"/><br/> <s:property value="#request.name"/> </body> </html>