Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52331
  • 博文数量: 9
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 17
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-25 11:13
文章分类
文章存档

2016年(3)

2015年(6)

我的朋友

分类: 系统运维

2015-11-27 12:01:11

原文地址:Struts2与OGNL 作者:hello_fish

 

在Struts2中有一个称之为值栈的概念(ValueStack)。通过[N]和top访问元素。
在Struts2中 ,根对象就是ValueStack.在Struts2的任何流程中,ValueStack中的最顶层对象一定是Action对象


parameters ,   #parameters.username
request,  #request.username
session, #session.username
application, #application.username
attr, #attr.username
以上几个对象叫做“命名对象”

访问静态方法或是静态成员变量的改进
@ValueStack@method

Cat.java

package com.shengsiyuan.ognl;

public class Cat
{
 private String name ;
 private int age ;
 private String color ;
 public Cat(String name,int age ,String color)
 {
  this.name = name ;
  this.age = age ;
  this.color = color ;
 }
 public Cat()
 {
  
 }
 public String getName()
 {
  return name;
 }
 public void setName(String name)
 {
  this.name = name;
 }
 public int getAge()
 {
  return age;
 }
 public void setAge(int age)
 {
  this.age = age;
 }
 public String getColor()
 {
  return color;
 }
 public void setColor(String color)
 {
  this.color = color;
 }
 
}
Person.java

package com.shengsiyuan.ognl;

import java.util.Map;

public class Person
{
 private String name ;
 private int age ;
 private String address ;
 private String[] friends ;
 private Cat cat ;
 private Map map ;
 
 
 
 public Person(String name, int age, String address, String[] friends,
   Cat cat, Map map)
 {
  this.name = name;
  this.age = age;
  this.address = address;
  this.friends = friends;
  this.cat = cat;
  this.map = map;
 }
 
 
 
 public Person()
 {
  
 }

 

 public String getName()
 {
  return name;
 }
 public void setName(String name)
 {
  this.name = name;
 }
 public int getAge()
 {
  return age;
 }
 public void setAge(int age)
 {
  this.age = age;
 }
 public String getAddress()
 {
  return address;
 }
 public void setAddress(String address)
 {
  this.address = address;
 }
 public String[] getFriends()
 {
  return friends;
 }
 public void setFriends(String[] friends)
 {
  this.friends = friends;
 }
 public Cat getCat()
 {
  return cat;
 }
 public void setCat(Cat cat)
 {
  this.cat = cat;
 }
 public Map getMap()
 {
  return map;
 }
 public void setMap(Map map)
 {
  this.map = map;
 }
 
 
}

OgnlAction.java

package com.shengsiyuan.ognl;

import java.util.Map;

import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;

import com.opensymphony.xwork2.ActionSupport;

public class OgnlAction extends ActionSupport implements RequestAware,
  SessionAware, ApplicationAware
{
 private String username;
 private String passwod;

 public String getUsername()
 {
  return username;
 }

 public void setUsername(String username)
 {
  this.username = username;
 }

 public String getPasswod()
 {
  return passwod;
 }

 public void setPasswod(String passwod)
 {
  this.passwod = passwod;
 }

 private Map requestMap;
 private Map sessionMap;
 private Map applicationMap;

 public void setRequest(Map arg0)
 {
  System.out.println("setRequest invoked!");
  this.requestMap = arg0;
 }

 public void setApplication(Map arg0)
 {
  this.applicationMap = arg0;
 }

 public void setSession(Map arg0)
 {
  this.sessionMap = arg0;
 }

 @Override
 public String execute() throws Exception
 {
  return SUCCESS;
 }

}
Struts.xml部分


  
   /ognl.jsp
  
  

 

Ognl.jsp

<%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix = "s" uri = "/struts-tags"%>

 
 
 username :

 password :

 ----------------
 username :

 password:
 

阅读(883) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~