您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > JSP >

JSP中action属性的功能

来源:互联网 责任编辑:栏目编辑 发表时间:2013-07-01 09:22 点击:

1. 完整的action

<action path="/aFullAction"
type="somePackage.someActionClass">
name="someForm"
input="someJSP.jsp"
<forward name="successful" path="someJSP.jsp"/>
<forward name="failed" path="someOtherJSP.jsp"/>
</action>

首先,Struts的ActionServlet接收到一个请求,然后根据struts-config.xml的配置定位到相应的mapping(映射);接下来假如form的范围是request或在定义的范围中很难找到这个form,创建一个新的form实例;取得form实例以后,调用其reset ()方法,然后将表单中的参数放入form,假如validate属性不为false,调用validate()方法;假如validate()返回非空的ActionErrors,将会被转到input属性指定的URI,假如返回空的ActionErrors,那么执行Action的execute() 方法,根据返回的ActionForward确定目标URI。

这样做的效果是:execute()仅当validate()成功以后才执行;input属性指定的是个URI。

2. 仅有Form的action

<action path="/aFormOnlyAction"
type="org.apache.struts.actions.ForwardAction"
name="someForm"
input="someJSP.jsp"
parameter="someOtherJSP.jsp"
/>

首先,Struts会在定义的scope搜寻someForm,假如找到则重用,假如很难找到则新建一个实例;取得form实例以后,调用其reset()方法,然后将表单中的参数放入form,假如validate属性不为false,调用validate()方法;假如validate()返回非空的 ActionErrors,将会被转到input属性指定的URI,假如返回空的ActionErrors,那么转到parameter属性指定的目标 URI。

这样做的效果是:没有action类能够存放我们的业务逻辑,所以任何需要写入的逻辑都只能写到form的reset()或 validate()方法中。validate()的作用是验证和访问业务层。因为这里的action映射不包括forward(也没有意义),所以不能重定向,只能用默认的那个forward。这种仅有form的action能够用来处理数据获取并forward到另一个JSP来显示。

3. 仅有Action的action

<action path="/anActionOnlyAction"
type="somePackage.someActionClass">
input="someJSP.jsp"
<forward name="successful" path="someJSP.jsp"/>
<forward name="failed" path="someOtherJSP.jsp"/>
</action>

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • JSP与Servlet
  • 自己动手写MiniBBS系列(基本篇)之用户登录
  • JSP取当前日期
  • JDBC 入门(一)
  • 打开一个jsp页面默认查询所有数据,调用action
  • 使用JSP标签库验证用户的输入(2)完
  • WIN98/2000下的jsp服务器
  • 自定义JSP标签(tag)浅议
  • Struts学习傻瓜式入门篇
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1