Struts里面的Action

Action的实现

意义:用来对用户请求进行处理,称为业务逻辑器,在struts.xml里面进行配置

用法:
1、首先对用户进行的请求变量(即Http请求参数),都有相应的Setter和getter方法
2、需要实现无参方法 public String execute ()
3、同时可以封装处理结果,private String tip;
对于封装的变量的输出方式,可以用

<s:property value="tip" />

Action接口和ActionSupport基类

五个标准返回字符串 ERROR LOGIN SUCCESS INPUT NONE

Action访问ServletAPI

1、Servlet API的三个接口 HttpServletRequest HttpServletResponse 和ServletContext
2、提供一个ActionContext类来访问 Servlet API
3、ServletActionContext

配置Action

package的配置

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

这个包里面有两个属性:
name:定义这个包的名字,即如果其他的包需要用这个包,则可以用该名字来指定
extends:指定继承的包,该包为struts自己所带的包

<package name="skills" extends="default" namespace="/skill" >

该包里面指定namespace的空间,该空间的用处主要处理在同一个Web应用里面有同名的Action,则在
调用同名Action时,需要添加namespace 来限定区别
abstract属性用来定义是否为抽象包

Action的基本配置


<package>
<action name="login" class="lee.LoginAction">
</package>

Action所需要的属性,
1、name必须
2、class一般必须,

Action只是一个逻辑控制器,需要将逻辑视图和物理视图之间进行映射,通过<result .../>进行映射
片段如下所示

<action name="login" class="lee.LoginAction">
<result/>
<result/>
</action>

使用Action的动态方法调用DMI

处理多个逻辑的Action,比如登陆和注册,两个逻辑,则需要用DMI来进行处理
DMI方法是指,表单元素的action并不是直接等于某个Action的名字,而是以如下方式来指定表单的action属性。

action="actionName!methodName"

用注册按钮为例,jsp页面中的代码

<input type="submit" value="regist" onclick="regist()">

即单机该按钮,则跳转到函数regist

functon regist()
{
//获取页面的第一个表单
targetForm = document.forms[0];
//动态修改表单的action属性
targetForm.action = "login!regist"
}

则需要在login.java里面添加regist方法即可,而登陆时则用默认的方法execute()方法。
同时,调用动态方法时,需要在配置常量时,设置struts.enable.DynamicMethodInvocation为true。

指定method属性及使用通配符

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值