码迷,mamicode.com
首页 > 其他好文 > 详细

Strust的基础情况

时间:2015-12-11 01:24:04      阅读:310      评论:0      收藏:0      [点我收藏+]

标签:

Struts的优点:

1、实现MVC模式,结构清晰

2、丰富的标签(tag

3、通过配置文件页面导航,便于后期维护

4、与Servlet API松耦合,便于测试

 

 

Structs2=Structs1的知名度和市场+WebWork的技术              

 

 

二、Struts2 获取

1、http://struts.apache.org/download.cgi

2、Struts-2.3.16.3-all.zip

三、Struts2 主要目录

apps :该文件夹下包含了基于Struts2的示例应用

docs:该文件夹下包含了Struts2的相关文档,包括Struts2的快速入门、Struts2的文档以及API文档等内容

lib :该文件夹下包含了Struts2框架的核心类库,以及

Struts2的第三方插件类库

src :该文件夹下包含了Struts2框架的全部源代码

四、Struts2 搭建所需 jar

commons-fileupload-1.3.1.jarStruts文件的上传和下载

commons-io-2.2.jar:文件读取

commons-lang3-3.1.jar:为java.lang包提供扩展

freemarker-2.3.19.jarFreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具(.ftl

ognl-3.0.6.jar:支持ognl表达式

javassist-3.11.0.GA.jar:分析、编辑和创建JAVA字节码的类库(可以重写.class文件)

struts2-core-2.3.16.3.jar:Struts2的核心包(WebWork)

xwork-core-2.3.16.3.jar:xwork的核心包(WebWork)

asm-*.jar :类似javassits

log4j-1.2.17.jar: 日志类库

 

 

有三种方式实现Action

1.创建自己的java类:增加方法:

public String execute(){

return "success";

}

   配置struts2.xml

<package name = "default" namespace="/" extends="struts-default"

<action name = "hello" class="…">

<result>hello.jsp</result>

</action>

</package>

 

2.实现接口Action

3.继承ActionSupport

 

 

Action接收参数(属性方式)

 

//以属性方式接收用户登录输入的用户名和密码
public class UserAction extends ActionSupport {
    private String userName;//用户名
    private String password;//密码
    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;
    }
    @Override
    public String execute() throws Exception {
        return "success";
    }    
}

 

 

 

控制业务逻辑

表单参数名称必须在Action中有对应的setter以及getter

解决乱码

 修改struts.xml,添加代码<constantname="struts.i18n.encoding" value="编码格式" />

页面显示

<%@taglib uri="/struts-tags" prefix="s"%>

<s:property value="属性名"/>

应用场景

 接收的参数字段个数少的时候适合使用,比如对于搜索应用,接收用户输入的搜索条件

 

 

Action接收参数(JavaBean方式):将模型数据从Action中分离了出来

 

//以javaBean方式接收用户登录输入的用户名和密码
public class UserAction2 extends ActionSupport {
    private User user;
    public User getUser() {
        return user;
    }
    public void setUser(User user) {
        this.user = user;
    }
    @Override
    public String execute() throws Exception {
        return "success";
    }

}

 

 

 

定义实体类,为实体添加属性以及settergetter

com.pb.entity.User

Action添加实体属性以及settergetter

 User user

修改表单参数name为实体对象名.属性名

<input type="text" name="user.userName"/>

取值通过<s:property value=“对象名.属性名”/>形式

 <s:property value="user.userName"/>

 

Action接收参数的方式

 技术分享

使用method属性 

访问Action时,默认调用的是execute()方法

 可以在Action中定义多个业务方法

方法签名要与execute( )方法相同

 

 配置多个<action>标签

method属性指定调用的方法

public class HouseAction extends ActionSupport {

    public String add() {
        return "success";
    }
    public String update() {
        return "success";
  } }
<action name="house_add" class="com.pb.web.action.HouseAction" method="add">

<action name="house_update" class="com.pb.web.action.HouseAction" method=“update">

 

使用动态方法调用(默认情况下是关闭的)

动态方法调用

DMIdynamic method invocation

一个Action类中可以有多个业务方法

public class HouseAction extends ActionSupport {

    public String add() {
        return "success";
    }
    public String update() {
        return "success";
    }
}        

只需要配置一个<action>标签

不需要使用method属性

调用时指出Action名和业务方法

 

<action name="house"class="com.pb.web.action.HouseAction">

调用时指出Action名和业务方法

http://localhost:8080/struts2/house!add

 

<result>name属性

根据Action业务方法的返回值跳转到不同的结果视图

       

public String add() throws Exception {

  return "addSuccess";

}

public String update() throws Exception {

  return "updateSuccess";

}
<action name="house" class="com.pb.web.action.HouseAction" >

  <result name="addSuccess">/houseAddSuccess.jsp</result>

  <result name="updateSuccess">/houseUpdateSuccess.jsp</result>

</action>

 

Strust的基础情况

标签:

原文地址:http://www.cnblogs.com/xuerong/p/5037681.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!