Struts2初体验

1.Struts 2及其优势

Struts 2是一个MVC框架,以WebWork框架的设计思想为核心,吸收了Struts 1的部分优点

Struts 2拥有更加广阔的前景,自身功能强大,还对其他框架下开发的程序提供很好的兼容性

步骤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>
     <!-- 拦截所有的action -->
     <url-pattern>/*</url-pattern>
 </filter-mapping>

步骤2:在src下创建名称为struts.xml的配置文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>
    <!-- 配置文件中只要添加以下配置,那么以后修改配置文件不用重启tomcat -->
    <constant name="struts.devMode" value="true" />

    <package name="default" namespace="/" extends="struts-default">
        <!-- 第一个action的例子 -->
        <action name="helloWorld" class="cn.happy.action.HelloWorldAction">
            <result name="success">
               index.jsp
            </result>
        </action>
        <!-- 登陆的action -->
    </package>
    <!-- Add packages here -->

</struts>

步骤3:编写HelloWorldAction

package cn.happy.action;

import com.opensymphony.xwork2.Action;

public class HelloWorldAction implements Action{
    private String name ;
    private String message;
    public String execute() throws Exception {
        setMessage("Hello"+getName());
        return "success";
    }
}

步骤4:创建index.jsp页面

 <div>
        <h1>
            <!--显示Struts Action中message的属性内容-->
            <s:property value="message"/>
        </h1>
    </div>
    <div>
        <form action="helloWorld.action" method="post"> 
            请输入您的姓名: 
            <input name="name" type="text" />
            <input type="submit" value="提交" />
        </form>
    </div>

步骤5:通过浏览器访问

点击提交后结果

2.struts配置文件说明

<!-- 配置文件中只要添加以下配置,那么以后修改配置文件不用重启tomcat -->
<constant name="struts.devMode" value="true" />

  一个警告的解决

问题描述:No configuration found for the specified action: 'login.action' in namespace: ''. Form action defaulting to 'action' attribute's literal value.

  解析:

<s:form action="Login" method="post" namespace="/"> or <s:form action="/Login" method="post" >

3.登陆案例

步骤一:struts.xml文件

 <!-- 登陆的action -->
        <action name="login" class="cn.happy.action.LoginAction">
           <result name="success">
               login/success.jsp
           </result>
           <result name="login">
               login/login.jsp
           </result>
        </action>

步骤二:LoginAction类的创建

package cn.happy.action;

import com.opensymphony.xwork2.Action;

public class LoginAction implements Action{
     private String username = "";
     private String password = "";
     public String execute() throws Exception {
        if (username.equals("1")&&password.equals("1")) {
            return SUCCESS;
        }else {
            return LOGIN;
        }

     }
}

步骤三:创建登陆界面

 <s:form name="form1" namespace="/" method="post" action="login">
       请输入用户名: <s:textfield name="username"></s:textfield> <br/>
        <s:textfield name="password"></s:textfield><br/>
        <s:submit value="登陆"></s:submit>
     </s:form>

步骤四:在浏览器中访问

4.登陆案例强化:关于自动装配问题

 在开发中,通常会以JavaBean方式保存数据。所以可以有如下写法

       Action

       Jsp页面

猜你喜欢

转载自www.cnblogs.com/fl72/p/9974253.html