struts2--使用OGNL获取数据

本文介绍了一个使用Struts2框架实现的简单登录示例,包括登录页面的展示、登录逻辑处理及数据验证等关键步骤。示例中还演示了如何通过Struts2的标签库进行表单元素的生成,并利用OGNL表达式来访问和设置应用中的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

显示界面:



值栈信息:



登录页面(index.jsp):

  <body>
    <s:form action = "login" method = "post">
      <s:textfield name = "user.username" label = "用户名"/>
      <s:password name = "user.password" label = "密码"/>
      <s:radio list="{'男','女'}" label = "性别" name = "user.sex"/>
      <s:textfield name = "user.age" label = "年龄"/>
      <s:submit value = "提交"/>
    </s:form>
  </body>
LoginAction:

package com.action;

import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import javassist.compiler.ast.NewExpr;

import com.bean.User;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport{
	private User user;
	private List<User> users;
	private List list;

	public String execute(){
		list = new ArrayList();
		User user1 = new User("英男","123456",19);
		User user2 = new User("王虎","234567",35);
		list.add(user1);
		list.add(user2);
		
		HttpServletRequest request= ServletActionContext.getRequest();
		request.setAttribute("user", user.getUsername());
		Map session = ActionContext.getContext().getSession();
		session.put("user", user.getPassword());
		Map application = ActionContext.getContext().getApplication();
		application.put("user", user.getAge());
		
		users = new LinkedList<User>();
		users.add(new User("王环","883456",25));
		users.add(new User("张辽","166556",29));
		users.add(new User("薛平","135112",36));
		users.add(new User("蕾丝","452122",31));
		return SUCCESS;
	}
	
	public User getUser() {
		return user;
	}

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

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

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

	public List getList() {
		return list;
	}

	public void setList(List list) {
		this.list = list;
	}

}

javaBean:

package com.bean;

public class User {
	private String username;
	private String password;
	private String sex;
	private Integer age;

	public User() {}
	
	public User(String username,String password,Integer age){
		this.username = username;
		this.password = password;
		this.age = age;
	}
	
	public String getUsername() {
		return username;
	}

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

	public String getPassword() {
		return password;
	}

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

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public Integer getAge() {
		return age;
	}

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

}

输出界面(ognl.jsp):

 <body>
  <s:debug/>
    获取request:<s:property value = "#request.user"/><br>
    获取session:<s:property value = "#session.user"/><br>
    获取application:<s:property value = "#application.user"/><br>
    获取list属性信息:
    <s:property value = "list[0].username"/>
    <s:property value = "list[0].password"/>
    <s:property value = "list[0].age"/>
 <br>   
  静态属性:
  <s:property value = "@java.lang.Math@PI"/><br>
    年龄大于30的人:
    <ul>
       <s:iterator value = "users.{?#this.age>30}">
          <li>
            <s:property value = "username"/>
            <s:property value = "age"/>
          </li>
       </s:iterator>
    </ul>
  </body>

struts.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN"
    "http://struts.apache.org/dtds/struts-2.1.7.dtd">

<struts>
  <package name="default" namespace = "/" extends="struts-default">
    <action name = "login" class = "com.action.LoginAction">
       <result>/ognl.jsp</result>
    </action>
  </package>
</struts>   
    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柏油

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值