使用手动配置方式开发一个Struts项目

一、步骤 

1、使用MyEclipse新建一个Web项目

本例中项目为StrutsLogin

2、将Struts开发包引入到Web项目中

将Struts下的lib文件夹中的所有jar包复制到项目中的WEB-INF下的lib文件夹中

3、新建JSP页面

本例中登陆页面叫做login.jsp

4、编写表单(ActionForm)和分控制器(Action)

(1)新建两个包com.kang.forms和com.kang.actions。

(2)表单类需要继承自ActionForm,用于填充数据。表单相当于JavaBean。表单类中需要定义属性和方法。属性最好与form中控件的name属性值相同(也可以不同),方法为属性的get和set方法。一定要确保方法和控件的name属性值存在关联,即当属性名与form中控件的name属性值不同时,get和set方法名一定要和name属性值相同(get属性值、set属性值)。

(3)分控制器需要继承自Action,我们需要重写其中的一个方法execute,execute方法会被自动调用类似于Servlet中的doGet和doPost。其中参数form表示与该Action相关联的表单对象,这里需要强制转换。参数mapping的findForward方法用来得到并返回执行结果。

5、编写struts-config.xml文件

(1)新建文件struts-config.xml,该文件用来配置Action、ActionForm以及他们的对应关系和跳转关系。该文件一般被放在WEB-INF目录下,打开方式为MyEclipse XML Editor。

(2)配置表单

使用<form-beans>配置表单,在<form-beans>下添加<form-bean>,name属性表示表单对象名;type属性表示表单类的全路径

  <form-beans>
     <!-- name是表单名 -->
     <!-- type表示表单类的全路径 -->
     <form-bean name="userForm" type="com.kang.forms.UserForm"></form-bean>
  </form-beans>

  (3)配置Action

使用<action-mappings>配置Action,在<action-mappings>下添加<action>,path属性表示form要提交的资源名,该值要与form的action属性值相同;name属性用于关联某个表单,该值要与<form-bean>的name属性值相同;type属性表示类的全路径。

在<action>内还要使用<forward>配置跳转关系,name属性表示返回值,path属性表示要跳转到哪个页面。

  <action-mappings>
     <!-- 配置具体的一个Action -->
     <!-- path表示form要提交的资源名 -->
     <!-- name用于关联某个表单,该值要与<form-bean>的name属性值相同 -->
     <!-- type表示类的全路径 -->
     <action path="/login" name="userForm" type="com.kang.actions.LoginAction">
        <!-- 配置跳转关系 -->
        <!-- name表示返回的结果名称,path表示要跳转到哪个页面 -->
        <forward name="ok" path="/welcome.jsp"></forward>
        <forward name="error" path="/error.jsp"></forward>
     </action>
  </action-mappings>

6、编写结果页面

成功跳转到welcome.jsp,失败跳转到error.jsp

7.、在web.xml中配置总控制器(ActionServlet)

  <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
       <param-name>config</param-name>
       <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
  </servlet>
 
  <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
  </servlet-mapping>

8、开始使用Struts,测试程序

 

二、完整代码 

登录页面login.jsp:

    <form action="login.do" method="post">
          username:<input type="text" name="username"><br>
          password:<input type="password" name="password"><br>
          <input type="submit" value="submit">
    </form>

表单UserForm.java:

public class UserForm extends ActionForm {

   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;
   }
}

分控制器LoginAction.java:

public class LoginAction extends Action {

   // 我们需要重写其中的execute方法,该方法会被自动调用。
   public ActionForward execute(ActionMapping mapping, ActionForm form,
         HttpServletRequest request, HttpServletResponse response)
         throws Exception {

      UserForm userForm = (UserForm) form;
      System.out.println(userForm.getUsername() + " "
            + userForm.getPassword());

      //进行校验并跳转
      if ("kang".equals(userForm.getUsername())
            && "123".equals(userForm.getPassword())) {
         return mapping.findForward("ok");
      } else {
         return mapping.findForward("error");
      }
   }
}

编写struts-config.xml:

<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.3//EE" "http://struts.apache.org/dtds/struts-config_1_3.dtd">

<struts-config>
   <!-- 配置表单 -->
   <form-beans>
      <!-- name是表单名 -->
      <!-- type表示表单类的全路径 -->
      <form-bean name="userForm" type="com.kang.forms.UserForm"></form-bean>
   </form-beans>

   <!-- 配置Action -->
   <action-mappings>
      <!-- 配置具体的一个Action -->
      <!-- path表示form要提交的资源名 -->
      <!-- name用于关联某个表单,该值要与<form-bean>的name属性值相同 -->
      <!-- type表示类的全路径 -->
      <action path="/login" name="userForm" type="com.kang.actions.LoginAction">
         <!-- 配置跳转关系 -->
         <!-- name表示返回值,path表示要跳转到哪个页面 -->
         <forward name="ok" path="/welcome.jsp"></forward>
         <forward name="error" path="/error.jsp"></forward>
      </action>
   </action-mappings>
</struts-config>

编写welcome.jsp和error.jsp:

    两个页面简单的显示成功或失败

 

在web.xml中配置ActionServlet:

  <servlet>
     <servlet-name>action</servlet-name>
     <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
     <!-- 配置struts-config -->
     <init-param>
        <param-name>config</param-name>
        <param-value>/WEB-INF/struts-config.xml</param-value>
     </init-param>
  </servlet>

  <servlet-mapping>
     <servlet-name>action</servlet-name>
     <url-pattern>*.do</url-pattern>
  </servlet-mapping>

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值