要点:
在ActionForm定义值对象company,定义Setter/Getter方法;
在JSP里对input元素的名称稍加变化,加company前缀,company.cp_name。
Struts能把company.cp_name的值自动地Populate到对象company,填充cp_name属性。
效果:
简化ActionForm对属性的定义,实际上系统只需要保留ValueObject和PersistObject两类对象。
本质上是借用值对象ValueObject作为ActionForm的传值对象。
变化:
当页面元素来自不同类值对象时,例如Company,Bulletin等,分别写不同的前缀,company.cp_name,bulletin.bl_title。
对于不属于任何值对象的元素,照基本写法写。
===
示例代码
** 传统写法:
//CompanyForm.java
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
** 优化写法:
//CompanyForm.java
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
//company_add.jsp
要点:
在ActionForm定义值对象company,定义Setter/Getter方法;
在JSP里对input元素的名称稍加变化,加company前缀,company.cp_name。
Struts能把company.cp_name的值自动地Populate到对象company,填充cp_name属性。
效果:
简化ActionForm对属性的定义,实际上系统只需要保留ValueObject和PersistObject两类对象。
本质上是借用值对象ValueObject作为ActionForm的传值对象。
变化:
当页面元素来自不同类值对象时,例如Company,Bulletin等,分别写不同的前缀,company.cp_name,bulletin.bl_title。
对于不属于任何值对象的元素,照基本写法写。
===
示例代码
** 传统写法:
//CompanyForm.java
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
** 优化写法:
//CompanyForm.java
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockStart.gif)
![](/syntaxhighlighting/OutliningIndicators/ContractedSubBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedSubBlockEnd.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/InBlock.gif)
![](/syntaxhighlighting/OutliningIndicators/ExpandedBlockEnd.gif)
//company_add.jsp
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
![](/syntaxhighlighting/OutliningIndicators/None.gif)
转载于:https://blog.51cto.com/zhaolong1990ok/698077