Struts2_OGNL和值栈
来源:互联网 发布:手机统计软件 编辑:程序博客网 时间:2024/06/05 03:09
人生的旅途,前途很远,也很暗。然而不要怕,不怕的人的面前才有路。—— 鲁 迅
之前在逛论坛的时候看到过一篇关于OGNL和值栈的文章,觉得写得还不错,大家可以看一下http://blog.csdn.net/hanxuemin12345/article/details/38559979
下面是我写的代码 和 一点点补充。
注意:
①在迭代list的时候,一定要加#。
<s:property value="#u.username"/>
②在迭代map的时候,不仅要加#,还要加value。
<s:property value="#u.value.username"/>
访问的URL:
http://localhost:8080/dValueStack/demo
MyAction代码:
package com.lee.action;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.lee.domain.User;import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.util.ValueStack;public class MyAction { //对象属性 User user=new User(); public User getUser() { return user; } public void setUser(User user) { this.user = user; } public MyAction(User user) { this.user = user; } public MyAction() { super(); } //普通属性 private String str; public String getStr() { return str; } public void setStr(String str) { this.str = str; } //list集合属性 private List<User> list; public List<User> getList() { return list; } public void setList(List<User> list) { this.list = list; } //Map集合属性 private Map<String,User> map; public Map<String, User> getMap() { return map; } public void setMap(Map<String, User> map) { this.map = map; } public String execute(){ //对象属性赋值 user = new User(1 ,"我是用户名","做人地道,否则会有错误信息"); //普通属性赋值 str="我是普通属性"; //给list属性赋值 list=new ArrayList<>(); for (int i = 0; i < 3; i++) { list.add(new User(i,"123456"+i,"我是错误信息"+i)); } //给Map集合赋值 map=new HashMap<>(); for (int j = 0; j < 3; j++) { map.put("aa"+j, new User(j,"654321"+j,"我是正确信息"+j)); } //获取值栈 ValueStack valueStack=ActionContext.getContext().getValueStack(); //给值栈赋值 valueStack.push(user); return "success"; }}
welcome.jsp代码:
<%@ page language="java" pageEncoding="UTF-8" %><%@ page contentType="text/html; charset=UTF-8" %><%@ taglib uri="/struts-tags" prefix="s" %> <!DOCTYPE html ><html><head><meta charset="UTF-8"><title>title</title></head><body><h1>取对象属性</h1><h2>可以用 对象名.属性名 或者标签 两种方式取 </h2>${user.username }<br><s:property value="user.error"/><hr><h1>值栈取值</h1><h2>可以用 属性名 或者标签 两种方式取</h2>${id }<br><s:property value="error"/><hr><h1>取普通属性</h1><h2>可以用 属性名 和 标签两种方式取</h2><s:property value="str"/><br>${str }<hr><h1>取list集合属性</h1><h2>用迭代方式取,注意:一定要加#</h2><s:iterator value="list" var="u"> <s:property value="#u.id"/>: <s:property value="#u.username"/>: <s:property value="#u.error"/><br></s:iterator><hr><h1>取Map集合属性</h1><h2>用迭代方式取,注意:一定要加#,而且有value</h2><s:iterator value="map" var="u"> <s:property value="#u.value.id"/>: <s:property value="#u.value.username"/>: <s:property value="#u.value.error"/><br></s:iterator><s:debug/></body></html>
User代码:
package com.lee.domain;public class User { private String username; private Integer id; private String error; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getError() { return error; } public void setError(String error) { this.error = error; } public User(Integer id,String username, String error) { super(); this.username = username; this.id = id; this.error = error; } public User() { super(); }}
struts.xml 代码:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <package name="root" namespace="/" extends="struts-default"> <action name="demo" class="com.lee.action.MyAction"> <result>/welcome.jsp</result> </action> </package> </struts>
web.xml代码:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <filter> <filter-name>ApacheStruts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>ApacheStruts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>
阅读全文
0 0
- Struts2_OGNL和值栈
- struts2_ognl表达式与值栈
- struts2_ognl和valueStack简介
- Struts2_OGNL
- Struts2_OGNL
- (15)Struts2_OGNL读取Object栈
- (16)Struts2_OGNL读取Map栈及其他字段和方法属性
- 16.Struts2_OGNL读取Map栈(Context Map)里对象的属性及其他字段和方法
- 15.Struts2_OGNL读取对象栈(ObjectStack)属性
- 01 Struts2_OGNL
- 8.struts2_OGNL
- Struts2_ognl表达式
- Struts2_OGNL与VS
- 16-17. Struts2_OGNL
- struts2_ognl表达式符号的使用方法
- 11级_Java_曹建波 03.06 Struts2_ognl
- 值栈和OGNL
- Struts2-值栈和OGNL
- Ajax上传文件 (JQuery Ajax&原生Ajax)
- PCA的数学原理
- PHP获取客户端真实IP
- 两道华为在线编程题
- 方向感
- Struts2_OGNL和值栈
- C++中的mutable和volatile
- LeetCode | 60. Permutation Sequence——第K个全排列
- PHP表单数据初步处理
- hashmap冲突的解决方法以及原理分析:
- 7.6--SSH学习之关联映射
- Mybatis源码分析-一级缓存
- Redis遍历所有key的两个命令 -- KEYS 和 SCAN
- Boost算法拓展---几种Boost方法