Struts2 页面获取参数 List,Set,Map 及调用函数和实例化对象

相应的action,在action中实例化了许多需要传递给客户端的参数

public class OgnlAction extends ActionSupport {
    private Cat cat = new Cat();
    private Map<String, Dog> dogMap = new HashMap<String, Dog>();

    private Set<Dog> dogs = new HashSet<Dog>();

    private String password;

    private User user = new User();
    private String username;

    private List<User> users = new ArrayList<User>();

    public OgnlAction() {
        users.add(new User(1));
        users.add(new User(2));
        users.add(new User(3));

        dogs.add(new Dog("dog1"));
        dogs.add(new Dog("dog2"));
        dogs.add(new Dog("dog3"));

        dogMap.put("dog100", new Dog("dog100"));
        dogMap.put("dog101", new Dog("dog101"));
        dogMap.put("dog102", new Dog("dog102"));

    }

    public String execute() {
        System.out.println(user.toString());
        return SUCCESS;
    }

    public Cat getCat() {
        return cat;
    }

    public Map<String, Dog> getDogMap() {
        return dogMap;
    }

    public Set<Dog> getDogs() {
        return dogs;
    }

    public String getPassword() {
        return password;
    }

    public User getUser() {
        return user;
    }

    public String getUsername() {
        return username;
    }

    public List<User> getUsers() {
        return users;
    }

    public String m() {
        return "hello";
    }

    public void setCat(Cat cat) {
        this.cat = cat;
    }

    public void setDogMap(Map<String, Dog> dogMap) {
        this.dogMap = dogMap;
    }

    public void setDogs(Set<Dog> dogs) {
        this.dogs = dogs;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void setUser(User user) {
        this.user = user;
    }

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

    public void setUsers(List<User> users) {
        this.users = users;
    }
}

服务区相关的实体类对象和工具类

public class Cat {

    private Dog friend;

    public Dog getFriend() {
        return friend;
    }

    public void setFriend(Dog friend) {
        this.friend = friend;
    }

    public String miaomiao() {
        return "miaomiao";
    }
}
public class Dog {

    private String name;

    public Dog() {

    }

    public Dog(String name) {
        super();
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "dog: " + name;
    }
}
public class User {
    private int age = 8;

    public User() {

    }

    public User(int age) {
        super();
        this.age = age;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "user" + age;
    }
}
public class S {
    public static String STR = "STATIC STRING";

    public static String s() {
        return "static method";
    }
}

客户端页面获取参数

<body>
   <ol>
        <li>访问值栈中的action的普通属性: username = <s:property value="username"/> </li>
        <li>访问值栈中对象的普通属性(get set方法):<s:property value="user.age"/> | <s:property value="user[‘age‘]"/> | <s:property value="user[\"age\"]"/> | wrong: <%--<s:property value="user[age]"/>--%></li>
        <li>访问值栈中对象的普通属性(get set方法): <s:property value="cat.friend.name"/></li>
        <li>访问值栈中对象的普通方法:<s:property value="password.length()"/></li>
        <li>访问值栈中对象的普通方法:<s:property value="cat.miaomiao()" /></li>
        <li>访问值栈中action的普通方法:<s:property value="m()" /></li>
        <hr />
        <li>访问静态方法:@[email protected]()   <s:property value="@[email protected]()"/></li>
        <li>访问静态属性:@[email protected]   <s:property value="@[email protected]"/></li>
        <li>访问Math类的静态方法:@@max(2,3)    <s:property value="@@max(2,3)" /></li>
        <hr />

        <s:set name="user1" value="new com.yao.action.ognl.User(9)" scope="request"></s:set>
        <li>创建一个对象,访问对象:<s:property value="#request.user1.toString()"/>|${user1.age}<br></li>
        <li>访问普通类的构造方法:new com.yao.action.ognl.User(8)  <s:property  value="new com.yao.action.ognl.User(8)"  /></li>
        <hr />
        <li>访问List:<s:property value="users"/></li>
        <li>访问List中某个元素:<s:property value="users[1]"/></li>
        <li>访问List中元素某个属性的集合:<s:property value="users.{age}"/></li>
        <li>访问List中元素某个属性的集合中的特定值:<s:property value="users.{age}[0]"/> | <s:property value="users[0].age"/></li>
        <li>访问Set:<s:property value="dogs"/></li>
        <li>访问Map:<s:property value="dogMap"/></li>
        <li>访问Map中某个元素:<s:property value="dogMap.dog101"/> | <s:property value="dogMap[‘dog101‘]"/> | <s:property value="dogMap[\"dog101\"]"/></li>
        <li>访问Map中所有的key:<s:property value="dogMap.keys"/></li>
        <li>访问Map中所有的value:<s:property value="dogMap.values"/></li>
        <li>访问容器的大小:<s:property value="dogs.size()"/> | <s:property value="dogMap.size()"/> | <s:property value="users.size"/> </li>
        <hr />
        <li>投影(过滤):<s:property value="users.{?#this.age==1}[0]"/></li>
        <li>投影:<s:property value="users.{^#this.age>1}"/></li>
        <li>投影:<s:property value="users.{$#this.age>1}.{age}"/></li>
        <li>投影:<s:property value="users.{$#this.age>1}.{age} == null"/></li>
        <hr />
        <!-- 获取参数值 -->
        <li>[]:<s:property value="[0].username"/></li>
        <li>[]:<s:property value="[0].password"/></li>
    </ol>

    <s:debug></s:debug>
  </body>
时间: 2024-11-10 11:33:45

Struts2 页面获取参数 List,Set,Map 及调用函数和实例化对象的相关文章

Struts2--result页面跳转forward--get方式和post方式的获取参数

一.总体概述 这篇文章是写基于struts2(整合了ssh)的2个页面之间的跳转传参.突然这天想到,struts2的result有很多的type类型(跳转,重定向,...),于是就回忆起,跳转和重定向的不同(跳转地址栏不变,共享参数:重定向地址栏改变,不再共享参数).心里好奇,struts2里页面跳转的时候,get的方式提交时怎么再第二个页面获取参数的,post是怎么在第二个页面获取参数的.重定向又是怎么样的呢?真的抱歉,我今天花了一天时间,只弄清楚了页面跳转,关于页面重定向传参明天再搞.本来这

html href页面跳转获取参数

//传递参数 var id = columnData.id; var companyname = encodeURI(columnData.companyname); var linename = encodeURI(columnData.linename); text = text + "<a href='/hylm/html/basicdata/transit/updatetransit.html?id=" + id + "&companyname=&quo

父页面获取子页面的内容

需求说明:两个JSP页面,父页面需要子页面的内容,但子页面是隐藏的,具体来说,子页面是一系列的模板,父页面要通过id来获取这些模板,不愿意通过<include>方式导入,因为如果模板过多,就导致整个父页面太大,加载缓慢,以下两个方案,不知有没有解决这个问题. 1,通过ajax方式 实现过程:通过ajax请求到子页面中,子页面获取参数id使用java和js变量的交互后,返回需要的模板信息 缺点:把js变量转换成java变量比较麻烦,需要使用form表单来提交,而且jsp中的java脚本是在服务器

Null作为参数的时候,Java编译器如何调用函数?

1 public class TestNull { 2 public void method(Object o){ 3 System.out.println("Object Version"); 4 } 5 6 public void method(String s){ 7 System.out.println("String Version"); 8 } 9 10 public static void main(String[] args) { 11 TestNu

Struts2学习第二天——获取参数与数据校验

文档版本 开发工具 测试平台 工程名字 日期 作者 备注 V1.0 2016.06.14 lutianfei none struts2中获取请求参数 在struts2中action是什么?(struts2是一个mvc框架) View : jsp Model : action Control : action & StrutsPrepareAndExecuteFilter 1.属性驱动 1.直接将action做一个model(类似bean结构),就可以得到请求参数. 问题1:action封装请求参

Struts2------Result处理&amp;获取页面请求参数&amp;API

一.Result处理 1.1 说明 平常我们设置跳转页面,是在action标签里面加上 result标签来控制,这种设置的页面跳转,称之为 局部结果页面:但是我们有时候在很多个action里面,针对不同的结果进行跳转时,也有可能跳转同一个页面,那么这个时候就可以配置全局结果页面. 1.2 局部结果配置eg <action name="demo01_*" class="com.gaga.web.action.ActionDemo01" method="

struts2框架学习笔记4:获取参数

第一种参数获取方式: 编写一个前端页面,提交表单,做示例: <form action="${pageContext.request.contextPath}/Demo1Action"> 用户名:<input type="text" name="name" /><br> 年龄:<input type="text" name="age" /><br>

struts2获取表单数据之 属性封装 模型驱动 表达式封装 对象封装到list集合 对象封装到map集合 五种方便的封装方式

一.属性封装 属性封装是在action里面设定属性值,属性名字一定要和表单中的name一样,action中extends ActionSupport demo1.jsp: <body> This is my login JSP page. <br> <form action="demo1.action" method="post" > username<input type="text" name=&qu

Struts2获取参数的几种方式

Struts2由于是一个贴心的框架,所以获取参数这种体力活,就无需再通过原生的request来getParameter了,有如下几种方式进行获取 1.Action中属性驱动,必须提供与form表单name相同的后台属性get/set,这种方式适合数据量比较少的form表单提交 2.大数据量的form表单,这时一般对应后台的一个实体类,所以这时还在每个action写属性驱动,那就会代码冗余,这时可以定义一个对象来属性来进行参数接收,如User对象,只是前台传参数的时候,需要先写对象名再点对象下的属