【ssh学习笔记】struts2的action与Spring

2024-09-05 03:58

本文主要是介绍【ssh学习笔记】struts2的action与Spring,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

//由struts-spring-plugin管理,不需要加@Resource,或在<span style="font-family: Arial; font-size: 14px; line-height: 26px;">applicationContext.xml</span>中也不需要配置该bean
//需要注入的对象也不需要加@Resource
public class JsonAction extends ActionSupport {/*** */private static final long serialVersionUID = -9040282050464969108L;private String isSuccess = "success";private List<Map<String, Object>> users = new ArrayList<Map<String, Object>>();private UserManager userManager;@JSON(name="result")public String getIsSuccess() {return isSuccess;}public void setIsSuccess(String isSuccess) {this.isSuccess = isSuccess;}public List<Map<String, Object>> getUsers() {return users;}public void setUsers(List<Map<String, Object>> users) {this.users = users;}@JSON(serialize=false)public UserManager getUserManager() {return userManager;}
<span style="white-space:pre">	</span>
<span style="white-space:pre">	</span>//@Resourcepublic void setUserManager(UserManager userManager) {this.userManager = userManager;}@Overridepublic String execute() throws Exception {List<User> userList = userManager.listUsers();for(User user : userList){Map<String, Object> jsonMap = new HashMap<String, Object>();jsonMap.put("id", user.getId());jsonMap.put("username", user.getUsername());jsonMap.put("password", user.getPassword());users.add(jsonMap);}return SUCCESS;}}


在struts.xml中,action的class属性指向具体的class时,action是由struts-spring-plugin来管理,即不需要在action中写上@Resource,@Component等annotaion


相反,如果将action完全交由spring来管理,则class属性设置为action的bean id,

	<package name="json" extends="json-default" namespace="/"><action name="jsonAction" class="<span style="font-family: Arial, Helvetica, sans-serif;">jsonAction</span><span style="font-family: Arial, Helvetica, sans-serif;">"  method="execute"></span>
<result type="json" /></action></package>

所以需要在action中添加annotation,或者在:applicationContext.xml添加bean

//完全由spring管理,需要加@Resource,或在<span style="font-family: Arial; font-size: 14px; line-height: 26px;">applicationContext.xml</span>中配置该bean
//需要注入的对象需要加@Resource
@Component
public class JsonAction extends ActionSupport {/*** */private static final long serialVersionUID = -9040282050464969108L;private String isSuccess = "success";private List<Map<String, Object>> users = new ArrayList<Map<String, Object>>();
	private UserManager userManager;@JSON(name="result")public String getIsSuccess() {return isSuccess;}public void setIsSuccess(String isSuccess) {this.isSuccess = isSuccess;}public List<Map<String, Object>> getUsers() {return users;}public void setUsers(List<Map<String, Object>> users) {this.users = users;}@JSON(serialize=false)
     @Resource
	public UserManager getUserManager() {return userManager;}
<span>	</span>
<span>	</span>//@Resourcepublic void setUserManager(UserManager userManager) {this.userManager = userManager;}@Overridepublic String execute() throws Exception {List<User> userList = userManager.listUsers();for(User user : userList){Map<String, Object> jsonMap = new HashMap<String, Object>();jsonMap.put("id", user.getId());jsonMap.put("username", user.getUsername());jsonMap.put("password", user.getPassword());users.add(jsonMap);}return SUCCESS;}}


这篇关于【ssh学习笔记】struts2的action与Spring的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137881

相关文章

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项

Java Web实现类似Excel表格锁定功能实战教程

《JavaWeb实现类似Excel表格锁定功能实战教程》本文将详细介绍通过创建特定div元素并利用CSS布局和JavaScript事件监听来实现类似Excel的锁定行和列效果的方法,感兴趣的朋友跟随... 目录1. 模拟Excel表格锁定功能2. 创建3个div元素实现表格锁定2.1 div元素布局设计2.

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

SpringBoot连接Redis集群教程

《SpringBoot连接Redis集群教程》:本文主要介绍SpringBoot连接Redis集群教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 依赖2. 修改配置文件3. 创建RedisClusterConfig4. 测试总结1. 依赖 <de

SpringBoot+Redis防止接口重复提交问题

《SpringBoot+Redis防止接口重复提交问题》:本文主要介绍SpringBoot+Redis防止接口重复提交问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录前言实现思路代码示例测试总结前言在项目的使用使用过程中,经常会出现某些操作在短时间内频繁提交。例

SpringSecurity显示用户账号已被锁定的原因及解决方案

《SpringSecurity显示用户账号已被锁定的原因及解决方案》SpringSecurity中用户账号被锁定问题源于UserDetails接口方法返回值错误,解决方案是修正isAccountNon... 目录SpringSecurity显示用户账号已被锁定的解决方案1.问题出现前的工作2.问题出现原因各

Java继承映射的三种使用方法示例

《Java继承映射的三种使用方法示例》继承在Java中扮演着重要的角色,它允许我们创建一个类(子类),该类继承另一个类(父类)的所有属性和方法,:本文主要介绍Java继承映射的三种使用方法示例,需... 目录前言一、单表继承(Single Table Inheritance)1-1、原理1-2、使用方法1-

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

SpringBoot中使用Flux实现流式返回的方法小结

《SpringBoot中使用Flux实现流式返回的方法小结》文章介绍流式返回(StreamingResponse)在SpringBoot中通过Flux实现,优势包括提升用户体验、降低内存消耗、支持长连... 目录背景流式返回的核心概念与优势1. 提升用户体验2. 降低内存消耗3. 支持长连接与实时通信在Sp

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源