struts框架中OGNL表达式的使用之jsp页面获取action中的属性值

时间:2022-05-22 21:53:34

在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>