当一个Action处理类中处理多个业务时,action的配置 文件将会急剧增加,导致配置文件很臃肿的问题。

struts2提供了两种方案来解决这个问题。一种是动态方法调用,另一种是使用通配符来配置Action。

这里只讲使用通配符的方式来配置Action.

代码如下:

UserAction

public class UserAction {
private Integer id;
private String name;
private String sex;
private int age;
private String phone;
private UserDao userDao = new UserDaoImpl();
//这个List必须为处理类的属性 才可以在列表页面中获取数据 如果只是在方法的内部声明将无法获取
//并且提供其get/set方法
private List<User> list;
private User user;
//添加
public String save(){
User user = new User(name,age,sex,phone);
if(userDao.save(user)>0){
return Action.SUCCESS;
}
return Action.ERROR;
}
//修改
public String update(){
User user = new User(id,name,age,sex,phone);
if(userDao.update(user)>0){
return Action.SUCCESS;
}
return Action.ERROR;
}
//查询
public String list(){
list = userDao.findAll();
//return Action.SUCCESS;
return "list";
}
//删除
public String delete(){
if(userDao.delete(id)>0){
return Action.SUCCESS;
}
return Action.ERROR;
}
//获取指定对象
public String toUpdate(){
user = userDao.findById(id);
//return Action.SUCCESS;
return "update";
} public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public List<User> getList() {
return list;
}
public void setList(List<User> list) {
this.list = list;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}

struts.xml

     <!--
*表示匹配所有请求的action名 *表示匹配任意多个字符
{1}表示匹配第一个*所代表的内容
如:*User 可以匹配 addUser,deleteUser,saveUser,findUser,updateUser,*表示User前的字符
*_* 可以匹配 add_user这样的请求
-->
<action name="*" class="cn.sxt.action.UserAction" method="{1}">
<result type="redirectAction">list</result>
<result name="list">/list.jsp</result>
<result name="update">/update.jsp</result>
<result name="error">/error.jsp</result>
</action>

注意:使用通配符请求action的方式和以前一样

java之struts2的action优化配置的更多相关文章

  1. Struts2(五)Action二配置

    一.method参数 action package com.pb.web.action; public class HourseAction { public String add(){ System ...

  2. java之struts2的action的创建方式

    首先action是用来处理请求的, 这里struts2中的action的3中创建方式. 1.无侵入性的创建方式. 无侵入性:使用第三方的框架,不直接继承或实现第三方提供的类或者接口就说是无侵入性的. ...

  3. struts2 之 Action的优化配置

    总结:struts2种action的配置文件会随着业务的增加而增加,导致配置文件膨胀.struts2中提供了三种方案来解决这个问题: 1. 动态方法调用来实现. 2. 通配符配置来解决. 3. 使用注 ...

  4. Struts2之Action基础与配置

    Action基础 Action是什么 在Struts2中,一个Action类代表一次请求或调用,每个请求的动作都对应于一个相应的Action类,一个Action类是一个独立的工作单元.也就是,用户的每 ...

  5. struts2对action中的方法进行输入校验---xml配置方式(3)

    上面两篇文章已经介绍了通过编码java代码的方式实现action方法校验,这里我们介绍第二种方式:xml配置文件 首先我们来看一个样例: ValidateAction.java: package co ...

  6. Struts2学习第一天--Struts2的概述、Struts2的入门、Struts2常见的配置、Struts2的Action的编写

    action的name要与访问路径对应.hello.action. 加到tomcat启动 访问:http://localhost:8080/struts2-1/demo1/demo1.jsp 改为su ...

  7. Struts2(五.用户注册的实现及整合Action的配置方法)

    一.用户注册功能 register.jsp页面 若是jquery ajax方式提交给action,还要回到jquery,控制权在jquery若是表单方式提交给action,控制权交给action &l ...

  8. java之struts2的配置讲解(2)

    在 java之struts框架入门教程 基础上,进行下列操作 1.结构对比 原来的项目结构图 现在的结构图 即从结构上可以看出,在HelloStruts项目中增加了config 文件夹(Source ...

  9. struts2 ,web.xml中配置为/*.action,运行报错Invalid <url-pattern> /*.action in filter mapp

    首先,修改成: <filter-mapping>  <filter-name>struts2</filter-name>  <url-pattern>/ ...

随机推荐

  1. 怎么在浏览器设置cookie

    document.cookie="jwt=xxxxxx" 遇到了一个bug 开了代理没有办法做图片上传

  2. linux 运行时限制CPU核数、内存、读写速度

    systemd-run --scope -p MemoryLimit=4G \ -p "BlockIOReadBandwidth=/dev/sdb1 150M" \ -p &quo ...

  3. PostgreSQL中的一些日志

    1.Write Ahead Log(WAL日志)预写日志(WAL)是保证数据完整性的标准方法.在有关交易处理的大多数(如果不是全部)书籍中都可以找到详细说明. 简而言之,WAL的核心概念是,只有在记录 ...

  4. Python中的args和kwargs

    有时,你会看到python中定义函数的时候带有两个奇怪的参数:*args.**kwargs.如果你曾经想知道它们是干什么的,或者想知道你的IDE为什么在main()函数中定义它们,那么本文可以帮助到你 ...

  5. python爬虫中XPath和lxml解析库

    什么是XML XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 的标签需要 ...

  6. PHP 基于 Jenkins ansible 动态选择版本进行自动化部署与回滚(第二版)

    PHP 基于 Jenkins ansible 动态选择版本进行自动化部署与回滚(第二版) 先看流程图: 大概介绍一下: 版本选择使用jenkins 中的 git parameter 插件实现 回滚方式 ...

  7. depth wise CNN

    depth wise cnn相对于传统的CNN,区别在于:它是逐通道做卷积操作! 例子如下: (1)使用传统卷积,输入:H*W*C_in,最终输出h*w*C_out:卷积核尺寸为K*K*C_in*C_ ...

  8. VS2010 C#添加水晶报表及设计

    添加并设计水晶报表. [1]在VS中添加水晶报表 右击项目-->添加-->组件-->Crystal Report,输入文件名称“CrystallistReport”,如下图所示: 此 ...

  9. 【Python开发】PyInstaller打包Python程序

    PyInstaller是一个能将Python程序转换成单个可执行文件的程序, 操作系统支持Windows, Linux, Mac OS X, Solaris和AIX.并且很多包都支持开箱即用,不依赖环 ...

  10. 并行编程架构(指令流水、进程、线程、多核,Pipe and Filter)

    最近在进行DSP软件优化时,查阅文献,看到了几种并行机制,下面予以总结: 关键词一:指令流水 关键词二:多进程 关键词三:多线程 关键词四:多核(多处理器.超线程结构.多核结构.多核超线程架构) 在体 ...