day03:Struct2Action归约

简介: day03:Struct2Action归约

Action归约

为了防止struts.xml中action越写越多,且相似度高,造成代码冗余

如下面:

<struts>
<package name="basicstruts" extends="struts-default">
  <action name="showBook" class="com.strut.action.BookAction" method="show">
    <result name="show">show.jsp</result>
  </action>
  <action name="addBook" class="com.strut.action.BookAction" method="add">
    <result name="add">show.jsp</result>
  </action>
  <action name="listingBook" class="com.strut.action.BookAction" method="list">
    <result name="list">list.jsp</result>
  </action>
</package>
</struts>

更改为:

<struts>
<package name="basicstruts" extends="struts-default">
  <action name="*Book*" class="com.strut.action.BookAction" method="{1}account{2}">
    <result name="show">show.jsp</result>
    <result name="list">list.jsp</result>
  </action>
</package>
</struts>

action标签,将不同的地方用通配符表示:在action的name里用*;method里用{num}表示,num是一个整数,表示第几个*

将不同的action对应的result写进action里


相关文章
|
13天前
|
存储 编译器 C++
C++ initializer_list&&类型推导
在 C++ 中,`initializer_list` 提供了一种方便的方式来初始化容器和传递参数,而右值引用则是实现高效资源管理和移动语义的关键特性。尽管在实际应用中 `initializer_list&&` 并不常见,但理解其类型推导和使用方式有助于深入掌握现代 C++ 的高级特性。
16 4
|
6月前
|
编译器 C++ 开发者
C++一分钟之-返回值优化与Move Semantics
【6月更文挑战第19天】C++的RVO与移动语义提升效率,减少对象复制。RVO是编译器优化,避免临时对象的创建。移动语义通过右值引用和`std::move`转移资源所有权。注意RVO不是总有效,不应过度依赖。使用移动语义时,避免误用`std::move`导致对象无效。示例展示了RVO和移动构造函数的应用。理解并恰当使用这些机制能写出更高效代码。
71 3
|
7月前
|
编译器 C++
struct 和 typedef struct 区别和用法总结
struct 和 typedef struct 区别和用法总结
135 0
|
7月前
|
存储 编译器 C语言
learn_C_deep_10 extern在多文件下的理解、struct 关键字的理解与柔性数组、union 的内存级布局理解、enum 关键字的基本理解、typedef 的理解与分类、关键字总结
learn_C_deep_10 extern在多文件下的理解、struct 关键字的理解与柔性数组、union 的内存级布局理解、enum 关键字的基本理解、typedef 的理解与分类、关键字总结
|
7月前
|
编译器 C++
offsetof宏的使用、模拟实现及 (size_t)&(((struct_type*)0)->mem_name)的解释
offsetof宏的使用、模拟实现及 (size_t)&(((struct_type*)0)->mem_name)的解释