jsp中的action,jsp中action的用法
如何解决写爬虫IP受阻的问题?立即使用。
类是用户请求和业务逻辑之间的桥梁,每个动作充当客户的业务代理。当RequestProcessor类预处理请求时,它在创建Action实例后调用自己的processActionPerform()方法,该方法调用Action类的execute()。
推荐课程:Java教程。
下面介绍jsp中的action功能:
完整的action
操作路径=/aFullAction
type= some package . someactionclass
name=someForm
input=someJSP.jsp
forward name= successful path= some JSP . JSP /
forward name= failed path= someother JSP . JSP /
/action首先Struts的ActionServlet接收一个请求,然后根据struts-config.xml的配置定位到对应的映射;接下来,如果表单的范围是request或者在定义的范围内很难找到表单,那么创建一个新的表单实例;获取表单实例后,调用其reset()方法,然后将表单中的参数放入表单中。如果validate属性不为false,则调用validate()方法;如果validate()返回一个非空的ActionErrors,它将被传输到由输入属性指定的URI。如果返回空ActionErrors,则执行操作的execute()方法,根据返回的ActionForward确定目标URI。
这样做的效果是:execute()只会在validate()成功后执行;输入属性指定了一个URI。
仅有JSP的action
操作路径=/aJSPOnlyAction
type= org . Apache . struts . actions . forward action
parameter=someOtherJSP.jsp
/首先ActionServlet收到请求后调用ForwardAction的execute()方法,根据配置的参数属性值执行()转发到那个URI。
这样做的效果是:没有表单被实例化,但更现实的情况可能是表单是在更高层次的请求中定义的;或者这个动作在应用编译后作为系统参数,只需要修改配置文件,不需要重新编译系统。
两个action对应一个form
操作路径=/a action
type= some package . someactionclass
name=someForm
input=someJSP.jsp
forward name= successful path=/another action . do /
/操作
操作路径=/anotherAction
type= some package . someotheractionclass
name=someForm
input=someOtherJSP.jsp
forward name= successful path= some result JSP . JSP /
/action就每个单独的动作而言,处理和完成动作之间没有实质性的区别。这种复合模式可以用来传递命令形式。注意,表单的reset()和validate()方法也将在后面的操作中被调用,所以我们必须确保表单中的信息不会被重写。
有两种处理方法:
a)在请求中放入一个指示符,表示前一个动作打算将表单传递给下一个动作,以便在后一个动作中可以保留那个表单中的值。此方法只能在使用forward时使用。
b)当使用redirect而不是forward时,可以将指示符放在session或更高级别,并在命令链的最后一次循环时清除该指示符。
操作路径=/a action
type= some package . someactionclass
name=someForm
input=someJSP.jsp
forward name= successful path=/another action . do redirect= true /
/操作
操作路径=/anotherAction
type= some package . someotheractionclass
name=someOtherForm
input=someOtherJSP.jsp
forward name= successful path= some result JSP . JSP /
/action的组合在流程上和前面的区别不大,但是现在我们分别为两个动作提供了表单,所以代码看起来更清晰。所以我们可以分别处理WEB应用程序的输入和输出。
值得注意的是,后一个动作也会试图将那些参数写入表单,但是我们可以这样处理它:
a)使用后一种形式的另一组属性名;
b)只提供getter,不提供setter。
大致的处理是这样:
前一个操作接收输入,验证它,然后将数据写入业务层或持久层,并将其重定向到下一个操作。后一个动作从业务层/持久层手动取出数据,写入表单(通过其他方式),并呈现给前台JSP进行显示。
这样做的好处是,您不必将值保存在输入表单中,因此您可以使用redirect而不是forward。这样降低了两个动作之间的耦合度,同时也避免了不必要的重复提交。这就是jsp中动作的细节。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。