tion valuequot3quotgtThreelt/optiongt lt/selectgt Struts2 标记 lts:select listquotproductOptionsquot labelquotSelectquot namequotabcquot listValuequotlabelquot listKeyquotvaluequot /gt 属性含义: listValue 对应每一个 Option 的文本 listKey 对应每一个 Option 提交的值 headerValue 提示头的文字 headerKey 提示头对应的提交值课堂案例【案例 1】struts2 核心标记库 项目结构图 5 达内 IT 培训集团1 新建工程 Struts042 配置好开发环境3 新建 com.tarena.outman.BaseAction package com.tarena.outman import
java.util.Map import javax.servlet.ServletContext import javax.servlet.http.HttpServletRequest import javax.servlet.http.HttpServletResponse import org.apache.struts2.interceptor.ServletRequestAware import org.apache.struts2.interceptor.ServletResponseAware import org.apache.struts2.interceptor.SessionAware import org.apache.struts2.util.ServletContextAware public class BaseAction implements SessionAware ServletRequestAware 6 达内 IT 培训集团 ServletResponseAware ServletContextAware protected MapltString Objectgt session protected HttpServletRequest request protected HttpServletResponse response protected ServletContext application public void setSessionMapltString Objectgt session this.session session public void setServletRequestHttpServletRequest request this.request request public void setServletResponseHttpServletResponse response this.response response public void setServletContextServletContext context this.application context 4 新建 struts.xml ltxml versionquot1.0quot encodingquotUTF-8quotgt ltDOCTYPE struts PUBLIC quot-//Apache Software Foundation//DTD Struts Configuration 2.1//ENquot quothttp://struts.apache.org/dtds/struts-2.1.dtdquotgt ltstrutsgt ltpackage namequotadvancequot extendsquotstruts-defaultquot namespacequot/day04quotgt ltaction namequotuitagquot classquotcom.tarena.outman.day04.UITagActionquot methodquotformquotgt ltresult namequotsuccessquotgt/WEB-INF/jsp/day04/uitag.jsplt/resultgt lt/actiongt lt/packagegt lt/strutsgt 7 达内 IT 培训集团 5 新建 com.tarena.outman..day04.UITagAction package com.tarena.outman.day04 import com.tarena.outman.BaseAction public class UITagAction extends BaseAction public String form return quotsuccessquot lts:formgt theme 属性 6 新建 uitag.jsp ltpage pageEncodingquotutf-8quotgt lttaglib uriquot/struts-tagsquot prefixquotsquotgt lthtmlgt ltheadgt lttitlegtlt/titlegt lt/headgt ltbodygt lts:form actionquotquot methodquotquot themequotxhtmlquotgt lts:textfield labelquotusernamequot/gt lts:password labelquotpasswordquot/gt lts:submit/gt lt/s:formgt lt/bodygt lt/htmlgt theme 属性:表示主题,可选项有 xhtml 和 simple;如果丌写,默认为 xhtml 7 访问 http://localhost:8080/struts04/day04/uitag.action 会自劢加样式 8 达内 IT 培训集团查看页面源代码,我们知道,struts2 为 form 自劢添加了lttablegt表格,让显示更好看些(略)8 修改 uitag.jsp ltpage pageEncodingquotutf-8quotgt lttaglib uriquot/struts-tagsquot prefixquotsquotgt lthtmlgt ltheadgt lttitlegtlt/titlegt lt/headgt ltbodygt lts:form actionquotquot methodquotquot themequotsimplequotgt lts:textfield labelquotusernamequot/gt lts:password labelquotpasswordquot/gt lts:submit/gt lt/s:formgt lt/bodygt lt/htmlgt9 访问 http://localhost:8080/struts04/day04/uitag.action原样显示,simple 类型注:在 themequotsimplequot下,label 丌起作用了 9 达内 IT 培训集团 struts2lts:formgt标签可以自动将 Action 的属性填写到页面 form 表单中 (注:密码是丌被自劢填写的) 10 修改 UITagAction package com.tarena.outman.day04 import com.tarena.outman.BaseAction public class UITagAction extends BaseAction private String username private String password public String form username quotWhatisjavaquot password quot123quot return quotsuccessquot public String getUsername return username public void setUsernameString username this.username username public String getPassword return password public void setPasswordString password this.password password 11 修改 uitag.jsp ltpage pageEncodingquotutf-8quotgt lttaglib uriquot/struts-tagsquot prefixquotsquotgt lthtmlgt ltheadgt lttitlegtlt/titlegt 10 达内 IT 培训集团 lt/headgt ltbodygt lts:form actionquotquot methodquotquot themequotxhtmlquotgt lts:textfield labelquotusernamequot namequotusernamequot/gt lts:password labelquotpasswordquot namequotpasswordquot/gt lts:submit/gt lt/s:formgt lt/bodygt lt/htmlgt 12 访问 http://localhost:8080/struts04/day04/uitag.action 自劢填写了在 Action 中对应的属性值“Whatisjava” 综上,我们发现,Struts2 的两个功能: Struts2 支持主题(theme) Struts2 标签可以实现 Action 数据回显到页面 form 表单 labelposition 属性 可以在有主题(theme)的前提下,指定 label 的位置 13 修改 uitag.jsp ltpage pageEncodingquotutf-8quotgt lttaglib uriquot/struts-tagsquot prefixquotsquotgt lthtmlgt ltheadgt lttitlegtlt/titlegt lt/headgt ltbodygt lts:form actionquotquot methodquotquot themequotxhtmlquotgt lts:textfield labelquotusernamequot namequotusernamequot 11 达内 IT 培训集团 labelpositionquottopquot/gt lts:password labelquotpasswordquot namequotpasswordquot labelpositionquottopquot/gt lts:submit/gt lt/s:formgt lt/bodygt lt/htmlgt required 属性 表示“这是必须的“,会在 label 后加一个”“星号 14 修改 uitag.jsp ltpage pageEncodingquotutf-8quotgt lttaglib uriquot/struts-tagsquot prefixquotsquotgt lthtmlgt ltheadgt lttitlegtlt/titlegt lt/headgt ltbodygt lts:form actionquotquot methodquotquot themequotxhtmlquotgt lts:textfield labelquotusernamequot namequotusernamequot labelpositionquottopquot requiredquottruequot/gt lts:password labelquotpasswordquot namequotpasswordquot labelpositionquottopquot/gt lts:submit/gt 12 达内 IT 培训集团 lt/s:formgt lt/bodygt lt/htmlgt tooltip 属性ampamptooltipIconPath 属性 提示信息 ampamp 提示图片的路径 15 修改 uitag.jsp ltpage pageEncodingquotutf-8quotgt lttaglib uriquot/struts-tagsquot prefixquotsquotgt lthtmlgt ltheadgt lttitlegtlt/titlegt lt/headgt ltbodygt lts:form actionquotquot methodquotquot themequotxhtmlquotgt lts:textfield labelquotusernamequot namequotusernamequot labelpositionquottopquot requiredquottruequot tooltipquotaaaquot tooltipIconPathquotquot/gt lts:password labelquotpasswordquot namequotpasswordquot labelpositionquottopquot/gt lts:submit/gt lt/s:formgt lt/bodygt lt/htmlgt 13 达内 IT 培训集团 未做定义时显示为这个样子,当鼠标放到图片上时,会显示 tooltip 的值”aaa“ 除了 struts2 标记库自定义的属性,其它所有 html 的属性都可以使用,比如 name、value 等, 但是,有 2 个属性名字做了改劢: class 属性 在 struts2 中为 cssClass style 属性 在 struts2 中位 cssStyle lts:formgtltformgt action 属性 16 修改 struts.xml ltxml versionquot1.0quot encodingquotUTF-8quotgt ltDOCTYPE struts PUBLIC quot-//Apache Software Foundation//DTD Struts Configuration 2.1//ENquot quothttp://struts.apache.org/dtds/struts-2.1.dtdquotgt ltstrutsgt ltpackage namequotcorequot extendsquotstruts-defaultquot namespacequot/day03quotgt ltaction namequotsubmitquot gt ltresult namequotsuccessquotgt/index1.jsplt/resultgt lt/actiongt lt/packagegt ltpackage namequotadvancequot extendsquotstruts-defaultquot namespacequot/day04quotgt ltaction namequotuitagquot classquotcom.tarena.outman.day04.UITagActionquot methodquotformquotgt 14 达内 IT 培训集团 ltresult namequotsuccessquotgt/WEB-INF/jsp/day04/uitag.jsplt/resultgt lt/actiongt ltaction namequotsubmitquot gt ltresult namequotsuccessquotgt/index2.jsplt/resultgt lt/actiongt lt/packagegt lt/strutsgt我们可以直接写 action 的名字17 修改 uitag.jsp代码片段 lts:form actionquotsubmitquot methodquotpostquot themequotxhtmlquotgt lts:textfield labelquotusernamequot namequotusernamequot labelpositionquottopquot requiredquottruequot tooltipquotcccquot tooltipIconPathquotquot/gt lts:password labelquotpasswordquot namequotpasswordquot labelpositionquottopquot/gt lts:submit/gt lt/s:formgt我们可以调用其它 package 的 action18 修改 uitag.jsp代码片段 lts:form actionquot../day03/submitquot methodquotpostquot themequotxhtmlquotgt lts:textfield labelquotusernamequot namequotusernamequot labelpositionquottopquot requiredquottruequot tooltipquotcccquot tooltipIconPathquotquot/gt lts:password labelquotpasswordquot namequotpasswordquot labelpositionquottopquot/gt lts:submit/gt lt/s:formgt 15 达内 IT 培训集团 我们还可以按以前的方式写路径 19 修改 uitag.jsp 代码片段 lts:form actionquot../day03/submit.actionquot methodquotpostquot themequotxh.