请告诉我准备拦截器是如何工作的 我现在正在使用它找到了暴力行为
prepare()
validate()
execute()
这些是方法
所以当我点击请求时,它会调用3次
prepare()
validate()
execute()
prepare()
validate()
execute()
prepare()
validate()
execute()
我不知道它的问题是什么 根据我的理解,它应该只运行准备方法&显示预先填充的数据表格&当用户点击提交时,它应该提交数据。
请解释
<action name="updatebusinessinfo" class="com.controller.UpdateBusinessDetails">
<interceptor-ref name="params"/>
<!--
<interceptor-ref name="prepare"/>
<interceptor-ref name="basicStack"/>
-->
<interceptor-ref name="fileUpload">
<param name="maximumSize">2097152</param>
<param name="allowedTypes">image/png,image/gif,image/jpeg,image/pjpeg</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<result name="success">businessinfo.jsp</result>
<result name="input">businessinfo.jsp</result>
<result name="error">businessinfo.jsp</result>
</action>
是的朋友我在struts.xml文件中犯了错误。
现在请告诉我如何在prepare()
方法中接收url参数?
http://www.myweb.com/updatebusinessinfo/23
我试过以下但没有工作
<action name="updatebusinessinfo/*" class="com.controller.UpdateBusinessDetails">
<param name="id">{1}</param>
<interceptor-ref name="params"/>
<!--
<interceptor-ref name="prepare"/>
<interceptor-ref name="basicStack"/>
-->
<interceptor-ref name="fileUpload">
<param name="maximumSize">2097152</param>
<param name="allowedTypes">image/png,image/gif,image/jpeg,image/pjpeg</param>
</interceptor-ref>
<interceptor-ref name="defaultStack"></interceptor-ref>
<result name="success">businessinfo.jsp</result>
<result name="input">businessinfo.jsp</result>
<result name="error">businessinfo.jsp</result>
</action>
答案 0 :(得分:3)
关于这个问题的一些提示可能对寻找准备拦截器信息的人有用:
在这里查看struts2中基本/默认堆栈的内容: http://struts.apache.org/release/2.0.x/docs/struts-defaultxml.html
有一个“paramsPrepareParamsStack”在准备之前和之后使用Params,所以你在para()中有你的参数。
答案 1 :(得分:1)
没有任何进一步的信息,很难说出这是什么以及为什么会发生这种情况。我们仍然希望你能提供更多关于你要做什么的细节?您正在访问的URL,有关配置的信息以及有关您的应用程序的任何其他信息。
如果你已经实现了Preparable接口,那么只会调用Prepare方法。简而言之,这是一种init方法,它允许我们在实际繁重的工作开始之前进行任何初始化工作。
在执行方法之前将调用Prepare方法。我建议您完成Prepare方法的工作以及堆栈调用它的实际方式。
以类似的方式,如果您已经实现了动作类,则S2将调用您的动作类的validate方法,并将根据方法中提供的实现验证数据。
这只是对流程的概述,我仍然建议您提供有关上下文的更多信息,以获得任何良好的输入。