您的位置:首页 > 编程语言 > Java开发

Struts里面的Action

2015-09-02 16:18 507 查看

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属性及使用通配符

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struts