struts2 基本

大概流程– 取 调 转

首先jsp页面发出请求,struts2核心拦截器拦截该请求,到struts.xml中找到该请求,去对应的类的对应方法处理该请求,这个类是action类,处理的方法返回一个字符串,这个字符串在struts.xml里面相应的能找到对应的jsp或者其他类型的页面,返回请求响应的页面。一次请求结束……
(大概就是类似一个servlet 的作用,从页面取数据,调用相应的处理方法,转到结果显示页面)

Created with Raphaël 2.1.0 jsp页面发送请求 struts2 获取页面数据 根据struts2.xml调用action类里的方法 action方法返回字符串 根据该返回字符串跳转到结果页面 页面显示结果

如下配置:
1、web.xml

<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.
    StrutsPrepareAndExecuteFilter</filter-class>
</filter>

<filter-mapping>
   <filter-name>struts2</filter-name>
   <url-pattern>*.action</url-pattern>
</filter-mapping>

*.action —- 表示拦截所有以.action结尾的url,然后交给struts2核心拦截器,
这个核心拦截器再根据struts.xml里的配置去找相应的方法处理

2、jsp 发送请求页面

<s:form action="userAction!login.action" method="post">
      <s:textfield name="user.name" label="USERNAME"></s:textfield>
      <s:textfield name="user.password" label="USERPASSWORD"></s:textfield>
      <s:submit value="submit" align="right"></s:submit>
    </s:form>

action 这里有三种写法

(1)静态调用login方法:直接写userAction!login
此时在web.xml里面的

 <url-pattern>*</url-pattern>

(2)动态调用login方法:userAction!login.action
Web.xml里面配过滤器

<filter-mapping>
  <filter-name>struts2</filter-name>
  <url-pattern>*.action</url-pattern>
</filter-mapping>

此时在struts.xml中需要加入

<constant name="struts.enable.DynamicMethodInvocation" value="true">
</constant>

(3)通配符:userAction!login
在struts.xml里面

<action name="*Action" class="action.UserAction" method=”{1}”>
      <result name="success">/{1}_list.jsp</result>  
</action>

3、struts.xml

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts.apache.org/dtds/struts-2.0.dtd">


<struts>
    <include file="struts-default.xml"/>


<constant name="struts.enable.DynamicMethodInvocation" value="true">
</constant>


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

        <action name="userAction" class="action.UserAction" >
            <result name="loginError">/login.jsp</result>
             <result name="success">/list.jsp</result>
              <result name="update">/update.jsp</result>
        </action>

    </package>
</struts>

4、action类

public class UserAction {


//从页面上取的值,作为属性,要加get 和 set 方法
private User user ;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}


// 响应 userAction!login.action 该请求
public String login() {
userDao.userLogin(user.getName(), user.getPassword());
return list();
}


public String list(){
userList = userDao.getUserList();
return "success";
// 根据返回的值去 struts.xml 里面 返回相应视图
}
}

5、jsp 响应请求–list.jsp

<body>
  <div align="center">
    <h1>用户信息列表 </h1>
    <a href="register.jsp" >ADDUSER</a>
     <table >
         <thead>
            <tr>
                <th>USERID</th>
                <th>USERNAME</th>
                <th>USERNAME</th>
                <th colspan="2">OPERATE</th>
            </tr>
         </thead>
        <s:iterator value="userList">
            <tr>
                <td><s:property value="id"/></td>
                <td><s:property value="name"/></td>
                <td><s:property value="password"/></td>
                <td>
                </td>
                <td>
                </td>
            </tr>
        </s:iterator>
    </table>



  </div>
  </body>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值