struts2----摘要1

 

 

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

        <action name="index">

            <result>/Namespace.jsp</result>

        </action>

    </package>

   

     <package name="main" extends="struts-default" namespace="">

        <action name="index">

            <result>/Namespace.jsp</result>

        </action>

</package>

 

1.

namespace决定了action的访问路径,默认为""可以接收所有路径的action

 

namespace可以写为/,或者/xxx,或者/xxx/yyy,对应的action访问路径为/index.action

/xxx/index.action,或者/xxx/yyy/index.action.

 

 

2.

来决定视图的内容具体Action的实现可以是一个普通的java类,

里面有public String execute方法即可或者实现Action接口

不过最常用的是从ActionSupport继承,好处在于可以直接使用Struts2封装好的方法

 

 

3.

struts2中的路径问题是根据action的路径而不是jsp路径来确定,所以尽量不要使用相对路径。

<a href="index.jsp">index.jsp</a>

解决办法非常简单,统一使用绝对路径。(在jsp中用request.getContextRoot方式来拿到webapp的路径)

或者使用myeclipse经常用的,指定basePath

 

4.

Action执行的时候并不一定要执行execute方法<br />

可以在配置文件中配置Action的时候用method=来指定执行哪个方法

也可以在url地址中动态指定(动态方法调用DMI)(推荐)<br />

    <a href="<%=context %>/user/userAdd">添加用户</a>

 

    <a href="<%=context %>/user/user!add">添加用户</a>

前者会产生太多的action,所以不推荐使用

        <action name="userAdd" class="com.bjsxt.struts2.user.action.UserAction" method="add">

            <result>/user_add_success.jsp</result>

        </action>

       

        <action name="user" class="com.bjsxt.struts2.user.action.UserAction">

            <result>/user_add_success.jsp</result>

        </action>

</package>

 

 

 

5.

          <action name="Student*" class="com.bjsxt.struts2.action.StudentAction" method="{1}">

            <result>/Student{1}_success.jsp</result>

        </action>

       

        <action name="*_*" class="com.bjsxt.struts2.action.{1}Action" method="{2}">

            <result>/{1}_{2}_success.jsp</result>

            <!-- {0}_success.jsp -->

        </action>

   

 

使用通配符,将配置量降到最低

<a href="<%=context %>/actions/Studentadd">添加学生</a>

<a href="<%=context %>/actions/Studentdelete">删除学生</a>

 

不过,一定要遵守"约定优于配置"的原则

 

<a href="<%=context %>/actions/Teacher_add">添加老师</a>

<a href="<%=context %>/actions/Teacher_delete">删除老师</a>

<a href="<%=context %>/actions/Course_add">添加课程</a>

<a href="<%=context %>/actions/Course_delete">删除课程</a>

 

 

 

6.

使用action属性接收参数<a href="user/user!add?name=a&age=8">添加用户</a>

    public class UserAction extends ActionSupport {

    private String name;

    private int age;

   

    public String add() {

       System.out.println("name=" + name);

       System.out.println("age=" + age);

       return SUCCESS;

    }

 

    public String getName() {

       return name;

    }

 

    public void setName(String name) {

       this.name = name;

    }

 

    public int getAge() {

       return age;

    }

 

    public void setAge(int age) {

       this.age = age;

    }

}

7.

使用Domain Model接收参数

<a href="user/user!add?user.name=a&user.age=8">添加用户</a>

 

public class UserAction extends ActionSupport {

   

    private User user;

    //private UserDTO userDTO;

    public String add() {

       System.out.println("name=" + user.getName());

       System.out.println("age=" + user.getAge());

       return SUCCESS;

    }

 

    public User getUser() {

       return user;

    }

 

    public void setUser(User user) {

       this.user = user;

    }

   

}

 

8.

使用ModelDriven接收参数<a href="user/user!add?name=a&age=8">添加用户</a>

 

public class UserAction extends ActionSupport implements ModelDriven<User>{

   

    private User user = new User();

   

    public String add() {

       System.out.println("name=" + user.getName());

       System.out.println("age=" + user.getAge());

       return SUCCESS;

    }

 

    @Override

    public User getModel() {

       return user;

    }

   

}

9.

 

<constant name="struts.devMode" value="true" />

<constant name="struts.i18n.encoding" value="GBK" />

中文问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值