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

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