Struts2_访问Web元素(保存数据)

本文介绍如何在Struts2框架中实现Action与前台页面之间的交互,并详细解释了如何使用Session进行用户信息存储。通过具体代码示例展示了依赖注入的设计思想,即如何将用户输入的数据保存到Session中。

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

后台的Action跟我们前台的页面来通讯的时候,由于它拿不到request,session,servletContext比如当我们有人登陆了,我们要在session中设一个值,表示它登陆了,但是如果你Action访问不到session,你如何把相关的数据设到session里面,response不用访问它,因为我们的结果是通过result返回的。(其实request我们也很少去拿它,因为我们Action的成员变量默认会起到request的作用,它自己会放到valueStack里面, valueStack本身就是放到request里面,所以根本不用去拿request.)

 采取IOC(控制反转)的设计思想,依赖注入DI

Index.jsp

<body>
<form action="User_add.action">
用户名<input type="text" name="user.username"><br>
密码<input  type="password" name="user.password" ><br>
<input type="submit" value="提交" >
</form>
</body>

UserAction.java

package com.demo.web.action;

import java.util.Map;

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

import com.demo.pojo.User;
import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport implements RequestAware, SessionAware, ApplicationAware {

	private User user;
	private Map<String, Object> request;
	private Map<String, Object> session;

	private Map<String, Object> application;

	/**
	 * 新增
	 * 
	 * @return
	 */
	public String add() {
		System.out.println("进入add方法...");
		System.out.println(user);
		session.put("user", user);
		return "add";
	}

	public User getUser() {
		return user;
	}

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

	@Override
	public void setApplication(Map<String, Object> application) {
		this.application = application;

	}

	@Override
	public void setSession(Map<String, Object> session) {
		this.session = session;

	}

	@Override
	public void setRequest(Map<String, Object> request) {
		this.request = request;

	}

}

Struts.xml

<struts>
	<constant name="struts.devMode" value="true" />
<constant name="struts.action.extension" value="htm,action,do"></constant>
	<package name="default" namespace="/" extends="struts-default"  >
		<action name="*_*" method="{2}" class="com.demo.web.action.{1}Action">
			<result name="add"  >{2}{1}.jsp</result>		</action>
	</package>
</struts>

addUser.jsp

<body>
<h1>欢迎进入add页面</h1>
用户名:${user}
</body>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值