struts2:form和Action的映射机制总结

  form和Action的映射机制:

1 首先用namespace进行映射(成功转入1-1,失败转入1-2)

a) 先在struts.xml中找完全匹配的package

 b) 没有完全匹配的话,找缺省的package(没有配置namespace的package)

 c) 没有配置缺省的package的情况下,则匹配失败-->警告: No configuration found for the specified action

1-1) namespace映射成功的话,再根据action进行映射

 a) 完全匹配的话,映射成功

 b) 否则,映射失败------------------>>>画面出现404错误

namespace映射成功的情况下,映射关系如下所示:(2对2映射)

JSP的form struts.xml

namespace---->>> package的namespace

action---->>>action的name

1-2) namespace映射失败的话,则用form中的action同package中的namespace+action的name进行

1对2匹配

 a) 完全匹配的话,映射成功

 b) 否则,映射失败------------------->>>画面出现404错误

namespace映射失败的情况下,映射关系如下所示:(1对2映射)

JSP的form struts.xml

action ---->>> package的namespace

action ---->>>action的name

配置例1:namespace完全匹配,不会出现警告信息

struts.xml:

namespace不配置的话,相当于缺省namespace

<struts>

<package name="struts2" namespace="/" extends="struts-default">

<action name="login" class="com.test.action.LoginAction">
<result name="success">/success.jsp</result>
 <result name="input">/login.jsp</result>

</action>

</package>

</struts>

 

login.jsp:

<s:form action="login" namespace="/">

</s:form>

 

配置例2:匹配到缺省namespace,不会出现警告信息

struts.xml:

namespace不配置的话,相当于缺省namespace

<struts>

<package name="struts2"? extends="struts-default">

<action name="login" class="com.test.action.LoginAction">
<result name="success">/success.jsp</result>
<result name="input">/login.jsp</result>

</action>

</package>

</struts>

 

login.jsp:

<s:form action="login" namespace="/">

</s:form>

或者

<s:form action="login">

</s:form>

 

配置例3:namespace匹配失败,出现警告信息

但是能够映射上,因为通过form的action可以1对2匹配成功

struts.xml:

namespace不配置的话,相当于缺省namespace

<struts>

<package name="struts2" namespace="/mypack" extends="struts-default">

<action name="login" class="com.test.action.LoginAction">
<result name="success">/success.jsp</result>
<result name="input">/login.jsp</result>

</action>

 </package>

</struts>

 

login.jsp:

<s:form action="/mypack/login">

</s:form>

 

配置例4:namespace匹配失败,出现警告信息

并且,因为action的1对2匹配也失败了,所以form提交后,画面会返回404错误

struts.xml:

namespace不配置的话,相当于缺省namespace

<struts>

<package name="struts2" namespace="/mypack" extends="struts-default">

<action name="login" class="com.test.action.LoginAction">
<result name="success">/success.jsp</result>
<result name="input">/login.jsp</result>

</action>

</package>

</struts>

 

login.jsp:

<s:form action="login">

</s:form>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Struts2 是一个基于 Java 的开源 Web 应用框架,它是 Struts 框架的升级版。它提供了一种简单、灵活且可扩展的方式来开发企业级的 Java Web 应用程序。在 HVV 面试中,可能会涉及到 Struts2 相关的问题。以下是一些常见的 Struts2 面试题及其答案: 1. 什么是 Struts2Struts2 是一个基于 MVC(Model-View-Controller)设计模式的 Web 应用框架,它通过将应用程序的不同部分分离开来,使开发更加模块化和可维护。 2. Struts2 的主要特点有哪些? - 基于 MVC 设计模式,使代码更加清晰和可维护。 - 提供了丰富的标签库和表单验证机制,简化了前端开发。 - 支持国际化和本地化,方便开发多语言应用。 - 提供了拦截器机制,可以对请求进行预处理和后处理。 - 支持 RESTful 风格的 URL 映射。 3. Struts2 的工作原理是什么? 当用户发送请求时,Struts2 的前端控制器(DispatcherServlet)接收到请求并将其分发给相应的 Action 类。Action 类处理请求并生成响应结果,然后将结果返回给前端控制器。前端控制器再将结果发送给视图层进行展示。 4. Struts2 中的拦截器是什么?有什么作用? 拦截器是 Struts2 中的一个重要组件,它可以在请求被处理前后进行预处理和后处理。拦截器可以用于实现身份验证、日志记录、性能监控等功能,提高应用程序的安全性和可维护性。 5. Struts2 中的常用标签有哪些? Struts2 提供了丰富的标签库,用于简化前端开发。常用的标签有: - `<s:form>`:用于生成表单。 - `<s:textfield>`:用于生成文本输入框。 - `<s:select>`:用于生成下拉列表。 - `<s:checkbox>`:用于生成复选框。 - `<s:submit>`:用于生成提交按钮。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值