structs简单实例及参数配置

原创 2011年01月11日 17:17:00

开发步骤:

A、首先建立一工程,选择web模块,最后再加载struts包即可。在工程中新建一包,命名为actions,在下面新建一类文件,命名为LoginAction,里面一定要重写execute方法,注意参数的顺序及返回类型都是不可以变化的。

在struts中action类起着控制转向的作用,当我们输入用户名与密码并点了提交按钮后,需要交给控制器来决断我们是转向到登陆成功页还是登陆失败页。LoginAction在此就起这么个功能,具体代码请依照如下所示:

public class LoginAction extends Action {

    public ActionForward execute(ActionMapping actionMapping,
                                  ActionForm actionForm,
                                  HttpServletRequest servletRequest,
                                  HttpServletResponse serveltResponse)
    {
        LoginActionForm loginform = (LoginActionForm) actionForm;//通过页面传参将form表单对象进行强转
        String username = loginform.getUsername();//获得页面的填写信息
        String userpass = loginform.getUserpass();
        boolean flag = false;
        String actionpath = "";
        if (username.equals("123") && userpass.equals("123")) {
            actionpath = "success";
        } else {
            actionpath = "error";
        }
        return actionMapping.findForward(actionpath);//通过actionMapping.findForward("参数值")方法的返回值,与structs-config里面相应的action里的forward相匹配,然后转向
    }
 }

在“LoginAction”中,我们得到一个ActionForm对象,并把它强转成LoginActionForm,
待我们处理,即通过ActionForm的匹配名称的表单自动封装机制,取得用户输入用户名、密码。
我们返回的结果将会被ActionFormward对象所包装,比如这儿的“success“表示用户合法,“error”表示用户不合法,这个字符串将决定着页面的流程控制。它并不是一个具体存在的页面,它是如何跟一个具体的页面关联上的呢?

我们来分析几点:
1、 你在操作时记住的概念:
Struts的核心是Action,而Action的核心就是一个配置文件——struts-config.xml。它既然是核心就很重要哦。
2、 Maping映射://通过方法的映射名称与action里的forward的name属性相匹配,转向相应的页面
a)         actionMapping.findForward("映射名称"); 它返回的是一个ActionForward对象
b)        struts-config.xml里面action节点下的:<forward name="映射名称" path="/页面名称"/>
实现机制:Struts会根据你传进actionMapping.findForward(“映射名称”),它会到你当前action节点下去找forward这个节点,并把你传进的参数与这个节点的name属性进行匹配。如果相等它就会跳到这个节点的path所指定的页面。
       例:
Action:actionMapping.findForward(“success”)
Struts-config.xml:<forward name="success" path="/success.jsp"/>
如果是这种情况的话,它就会转发到success.jsp页面。
      注意:
a)         方法的参数值和name节点的值对应,
b)        Path所指定的页面,前面必须加上“/“

       B、在前面我们提到了ActionForm,所以我们还需要建立一个类文件,这个类文件将封装页面用户输入的用户名、和密码。//一个bean实现页面的自动封装
注意:
1、这个类必须继承ActionForm类,它将完成与页面的自动封装。
2、类中的属性名称一定要和页面的输入框的名称对应,为了自动封装的匹配工作。
3、这个类中一定要提供所有与属性相匹配的set 和 get方法

前面写了这些代码,看上去还是有些杂乱无章,怎么把它们关联起来呢?又怎么调用这些代码呢?呵呵,群龙不会无首的,下面就一起来关注struts的装配文件,它可是相当于struts的总司令!

C、核心部分,跳转控制Struts-config.xml部分
<struts-config>
 <form-beans>
    <form-bean name="loginActionForm" type="formbeans.LoginActionForm" />
 </form-beans>
 <action-mappings>
<action path="/login" name="loginActionForm"  type="actions.LoginAction">//name与form-beans里面相应的form-bean相对应,type对应具体的action,/login对应jsp页面中form的action请求,但是没有后缀".do"
      <forward name="success" path="/success.jsp"/>
      <forward name="error" path="/wrong.jsp"/>
    </action>
 </action-mappings>
</struts-config>

我们对struts.xml做一下相应的介绍吧,如下:
<form-bean>:用来配置一个ActionForm Bean。常用配置的几个属性:
name:指定该ActionForm Bean的唯一标识符,整个Struts框架用该标识符来引用这个Bean。该属性是必需的
         type:指定ActionForm类的全限定名。该属性是必需的
<action>:用来描述特定的请求路径到相应的Action类的映射。常用配置的几个属性:
  input:    指定包含输入表单的URL路径。当表单验证失败时,将把请求转发到该URL。
  name:   指定和该Action关联的ActionForm Bean的名字。
  path:     指定访问Action的路径,它以“/”开头,没有扩展名。
  Scope: 指定ActionForm Bean的存在范围。(session | request)
  Validate:指定是否要先调用ActionForm Bean的validate()方法。默认值为true
Action的子元素<forward>常用配置的几个属性:
  name:   指定转发路径的逻辑名。必需的
  path:     指定转发(或重定向)的URI,必须以”/”开头。必需的
redirect:当此项为true时,表示执行重定向操作。为false时表示执行请求转发操作。默认值为false

D、页面login.jsp,用户登录页面,提供用户输入功能。具体代码如下所示:
<form method="post" action="login.do">与action里面的path相对应,但是action里面的,path没有后缀”。do“
 请输入姓名:<input type="text" name="username" value=""/><br />
 请输入密码:<input type="password" name="userpass" value=""/><br>
<input type="submit" name="Submit" value="Submit">
<input type="reset" value="Reset">
</form>

注意:
1、action后面的login.do就是struts-config.xml里面你要访问的action节点path的值哦
2、切记哦,如果你请求的URL的引用了formbean的话,这里的名称一定要对应哦。
还有success.jsp 、wrong.jsp分别代表登录成功和登录失败页面。就不再多说啦!
启动Tomcat,连接上您的应用程序网址,例如:http://localhost:8080/Struts1_Login/login.jsp,填入用户名、密码,并送出窗体,您的欢迎页面就会显示了。
       怎么样,本章节是不是比较容易?其实struts就这么简单,能完成本章节的要求吧!现在你已经上手啦!

Struts实例的解析,一个例子就懂了好多~

在前面的一篇文章中,使用的是官方例子,这里对其进行一个分析学习。 这个例子是基于Struts2的,和Struts1有区别。 代码的整体结构如下 先从配置文件入手,struts.x...
  • xkzju2010
  • xkzju2010
  • 2017年03月10日 22:10
  • 583

【Struts2框架】第六节拦截器-拦截器的几个小实例

在看拦截器的小例子的前我们先来看看sturts2的原理 struts2自己是有拦截器的,通过拦截器可以拦截用户请求,并作出处理 拦截器作用有很多,譬如: 1.Action里面有个属性,这个属性我想...
  • u013517797
  • u013517797
  • 2015年07月28日 20:51
  • 1001

Struts在Web.xml中的配置及Struts1和Struts2的区别

struts1 在web.xml中的配置: (1)配置Struts的ActionServlet      元素来声明ActionServlet     元素:用来定义Servlet的名称  ...
  • QMW19910301
  • QMW19910301
  • 2016年10月25日 13:56
  • 757

关于初学者配置structs的问题。

严重: Exception starting filter struts2 Unable to load configuration. - [unknown location]  at org.a...
  • superyayin
  • superyayin
  • 2014年01月26日 21:56
  • 512

监听器配置,java监听器,登陆监听,Listener,struts监听器配置,用户在线统计

转载自 http://heisetoufa.iteye.com/blog/227352 切入正题,先说一下什么是监听器,监听器也叫Listener,是Servlet的监听器,它可以监听客户端的请...
  • zhangmiaoy86
  • zhangmiaoy86
  • 2015年07月30日 16:27
  • 237

一个实例说明PID 参数整定

引言:PID是比例、积分、微分的简称,PID控制的难点不是编程,而是控制器的参数整定。参数整定的关键是正确地理解各参数的物理意义,PID控制的原理可以用人对炉温的手动控制来理解。     1.比例控制...
  • tiandijun
  • tiandijun
  • 2016年04月25日 14:49
  • 8757

struts 简单入门实践-demo

1.下载所需jar包 官网地址:struts官网地址  选择相应版本进行下载。 2.创建工程,引入jar包(eclipse)    选择创建一个 Dynamic Web project 勾选默...
  • u011982967
  • u011982967
  • 2017年02月19日 20:12
  • 688

appium简单实例

1.准备一台安卓手机,手机设置允许USB调试,与电脑链接良好 2.启动appium 3.点击appium的安卓图像标志 在application path 选择要测试的apk安装包,device...
  • henni_719
  • henni_719
  • 2016年06月20日 17:29
  • 2162

Struts2容器Container源码阅读笔记

container是容器的意思,这让人很容易联想到java的Collection接口下的集合类,然而container并不是一个数据结构,我认为container其实是一个工厂,可以对对象的生命周期进...
  • Joseph_Geeker
  • Joseph_Geeker
  • 2016年12月31日 16:15
  • 229

structs 国际化资源文件配置

stucts 国际化资源配置 分三种范围:全局范围 首先要在stucts.xml中指定资源文件的命名前缀(baseName) ...
  • u010497228
  • u010497228
  • 2015年02月02日 12:15
  • 244
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:structs简单实例及参数配置
举报原因:
原因补充:

(最多只允许输入30个字)