OGNL表达式 struts2

页面导航:首页 > 软件编程 > Java编程 > OGNL表达式 struts2

OGNL表达式 struts2

来源: 作者: 时间:2016-01-18 15:52 【

package com.cola.action;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.apache.struts2...
package com.cola.action;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.ServletActionContext;
import com.cola.bean.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
/**
 * @注释: <------->Action 传值:将待传递的对象通过set[A-->J] get[J-->A]方法进行传递 页面使用struts2
 * 标签 和OGNL表达式 web对象不用setget方法 jsp页面 value="#session.[键值对的键名]" 2015年12月10日 jing
 */
@SuppressWarnings("all")
public class OGNLAction extends ActionSupport {
    private User stu = new User(); // 传递对象
    private User techer = new User();
    private User user = new User();
    private List<User> list = new ArrayList<User>(); // 传递List
    private Map session; //由sruts 封装通过ActionContext取出
    private Map request; //由sruts 封装通过ActionContext取出
    private HttpServletRequest httprequest; //web 内置对象 直接使用
    private Map<String,String> map = new HashMap<String,String>();
    public OGNLAction() {
        // 获得session 防止每次载入当前Action中的execute()的方法而清空session,特此放入构造函数中
        session = ActionContext.getContext().getSession();
        //获得request ActionContext.getContext.get() 返回类型为Object
        request = (Map) ActionContext.getContext().get("request");
        //获得httprequest
        httprequest = ServletActionContext.getRequest();
    }
    @Override
    public String execute() throws Exception {
        // TODO Auto-generated method stub
        System.out.println("***************************");
        user.setUsername("James");
        user.setPassword("admin");
        stu.setUsername("xiaoming");
        stu.setPassword("123");
        techer.setUsername("zhang");
        techer.setPassword("123");
        list.add(user);
        list.add(stu);
        list.add(techer);
        // 给session放入值 该session 类型为Map
        session.put("sesskey", "fool");
        request.put("reqkey", "toofool");
        httprequest.setAttribute("httpreqkey", "clever");
        //map key可重复
        map.put("1", "hello");
        map.put("2", "hello");
        map.put("3", "hello");
        return SUCCESS;
    }
    public Map<String, String> getMap() {
        return map;
    }
    public void setMap(Map<String, String> map) {
        this.map = map;
    }
    public List<User> getList() {
        return list;
    }
    public User getUser() {
        return user;
    }
    public void setList(List<User> list) {
        this.list = list;
    }
    public void setUser(User user) {
        this.user = user;
    }
    public String show() {
        // 传递Action内的方法
        return "this is show() of function!";
    }
}
<%@ page language ="java" contentType="text/; charset=utf-8"
    pageEncoding="utf-8"%>
<[email protected] uri= "/struts-tags" prefix ="s" %>
<!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>
<hr />
<h1>this is OGNL jsp! </h1 >
访问普通属性: <s:property value ="username" /> <br>
访问普通属性方法: <s:property value ="username.length()" /> <br >
访问对象:<s:property value ="user"/>&nbsp &nbsp &nbsp< a> 已重写toString</a> <br>
访问对象属性: <s:property value ="user.username"/> < br>
访问对象属性: <s:property value ="user.password"/> < br>
访问对象的方法: <s:property value ="user.fun()"/> <br>
访问action的方法: <s:property value ="show()"/> <br>
访问集合属性: <s:property value ="list"/> <br>
访问集合大小: <s:property value ="list.ssize()"/> <br>
遍历整个集合: <br >
<s:iterator value= "list">
     <s:property /> <br >
</s:iterator>< br>
<br>
遍历集合中放入对象的 username属性(法一): <br >
<s:iterator value= "list" >
     <s:property value ="username"/><br>
</s:iterator>< br>
<br>
遍历集合中放入对象的 username属性(法二): <br >
<s:iterator value= "list" var="v" >
     <s:property value ="#v.username"/>< br>
</s:iterator>< br>
<br>
遍历集合中放入对象的password属性: <br >
<s:iterator value= "list" >
     <s:property value ="password"/><br>
</s:iterator>< br>
取得session:<s:property value ="#session.sesskey"/>< br>
取得request:<s:property value ="#request.reqkey"/>< br>
取得httprequest :<s:property value= "#request.httpreqkey"/><br >
<hr>
<br>
<h2>struts2标签:</ h2>
<h3>property:</ h3>< br>
<s:property value= "map"/> <br>
<s:property value= "map.keys"/> <br>
<s:property value= "map.values"/> <br>
<s:iterator value= "map">
     <s:property value ="key"/> <---------------> <s:property value= "value"/><br >
</s:iterator>

<h3>set:[不常用]</ h3>
<a>注意value=""中还有单引号,因为""里面放的是OGNL表达式,字符串需跟引号,否则为变量 </a >
<s:set var="adminName" value= "'admins'" scope="session" /> <br>
<s:set var="adminName" value= "'admin'" scope="request" /> <br>
<s:property value= "#session.adminName"/> <br>
<s:property value= "#request.adminName"/> <br>
<s:property value= "#attr.adminName"/> <br>

<h3>s:bean------->相当于实例化bean</h3 ><br >
<s:bean name= "com.cola.bean.User" var="doctor" >
     <s:param name ="username" value="'cola'" />
     <s:param name ="password" value="'123'" />
</s:bean>
bean:< s:property value= "#doctor"/> <br> <br>

<h3>if:</ h3>
<s:if test="3>2"> true</ s:if>
<s:elseif test= "2==2">==</s:elseif >
<s:else> false</ s:else> < br>
<a>打印 value stack【值栈表】 中的Action: </a ><br >
<s:property value= "[0]"/>
<s:debug></ s:debug>
</body>
</html>

 

Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<