struts在页面中使用form标记的注意事项

原创 2004年09月14日 23:01:00
struts在页面中使用form标记的注意事项
struts的form标记定义了一个页面的表单,但该struts标记需要根据action的值来查找module config里的action mapping,并根据action mapping的值来初始化action form。因此,在form标记中需要获取一个module config。在这里,获取哪一个module config成为了form标记能否正常工作的关键,如果module config的获取值不正确,将会造成对应的action mapping找不到或者找到但却不是正确的action mapping。从而造成Cannot retrieve mapping for {action name}的错误或者其他意外错误。在form标记的lookup方法中,包含了该查找module的过程,它的查找方法为首先从request中获取当前的module config,如果没有找到,就从servlet context中获取默认的module config(即module prefix为""的module)。
我们分析ActionServlet的初始化方式,可以发现ActionServlet将初始化好的module config分别保存在servlet context的属性中,其中的属性名为Globals.MODULE_KEY+prefix,但request对象的当前module config是怎么来的呢。它是ActionServlet在获取到一个请求后,根据请求的url与保存在servlet context里的module prefix进行匹配,如果匹配成功,则将属性名为Globals.MODULE_KEY+"匹配成功的prefix"的module config作为当前的module config返回,该过程出现在ActionServlet的process方法中,在select module的时候,将根据以上规则,选择当前的module config,并保存在request的属性Globals.MODULE_KEY。并将实例转给RequestProcessor对象。
我们从上面的分析中可以看出,包含form tag的jsp页面,如果要正确的将自已关联到一个module中,则需要事先将当前module config对象放在request请求中,但存放module config到request请求的动作是在ActionServlet中完成的。因此,页面只有在经过了对一个Acton进行处理后(在处理action的过程中,会根据action的url来匹配当前的module,并将其保存在request中),并通过redirect=false的方式下重定向到一个jsp页面,才能使该jsp页面正确的关联到module中,否则都将关联到默认的module config中,如直接在地址栏中键入jsp的url这种情况下,所有的jsp文件都关联到默认的module config中。

母版页已经有from 一页只能有一个服务器端 Form 标记

“一页只能有一个服务器端 Form 标记”,但是我检车了很多遍明明只有一个form,后来才发现是母版页里已经有了一个from 准确的说是不允许一个页面有两个form runat=“server” 于是...
  • u010552788
  • u010552788
  • 2013年12月19日 19:42
  • 2963

struts中使用form标记

struts中使用form标记struts在页面中使用form标记的注意事项    struts的form标记定义了一个页面的表单,但该struts标记需要根据action的值来查找module co...
  • youfly
  • youfly
  • 2004年02月20日 11:30
  • 572

关于html中表单<form>标记的介绍

表单在Web网页中用以让访问者输入数据,当提交表单时,表单中输入的数据被打包传递给Web服务器端的程序以处理,从而使得Web服务器与用户之间具有交互功能。 首先我们来说说关于表单的工作机制,浏览...
  • Candyys
  • Candyys
  • 2017年03月09日 23:42
  • 588

struts1的html详细用法示例

标记可以说是Struts所有标记中最简单的了。它简单的在页面开始处和结尾处产生一个的标记。在Struts1.1以前的版本中,该标记有一个locale属性。如下所示:   该属性的作用是读取...
  • wutongyu0123wutongyu
  • wutongyu0123wutongyu
  • 2015年10月06日 21:30
  • 6314

Struts下ActionForm的生命周期

ActionForm 的产生有两种情况。             1.于用户请求带有该 ActionForm 对应的 Form 表单的Jsp时,并且在session 中没有该 ActionForm ...
  • answer1991
  • answer1991
  • 2011年12月18日 22:53
  • 1784

使用Struts之ActionForm

使用Struts之鸟瞰ActionForm是窗体的对象化表示,它本身其实是个JavaBean,除了标准的getter与setter等方法之外,还提供有reset()、validate()等方法供Str...
  • softwave
  • softwave
  • 2007年08月16日 02:45
  • 4461

HTML文件基本标记(三)-<body>页面的主体标记

页面的主题标记;
  • aliuxina
  • aliuxina
  • 2017年03月29日 01:03
  • 873

struts中<s:form></form>标签的理解

当我们在一个文件夹里写的一个jsp页面时,比如我的webexam项目下admin文件夹下有个adminLogin.jsp 路径是这样: /webexam/admin/adminLo...
  • Site_Dave
  • Site_Dave
  • 2016年09月24日 11:21
  • 1136

Struts ActionForm简单理解

要想明白struts的控制流程以及它核心API的实现原理(比如 Action/DispatchAction/ActionForm的实现原理),玩转struts1.2的关键就是能够玩转 ActionFo...
  • Leopard100
  • Leopard100
  • 2014年08月07日 12:04
  • 1344

struts中action,actionform,jsp配置及流程分析(个人理解)

1、首先,新建各个文件,类TestAction,TestActionForm,test.jsp,struts-config-test.xml(该文件同struts-config.xml放在同一目录,此...
  • u011701534
  • u011701534
  • 2013年10月11日 13:41
  • 1117
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:struts在页面中使用form标记的注意事项
举报原因:
原因补充:

(最多只允许输入30个字)