Java后台框架篇--Struts2.0UI组件标签

来源:互联网 发布:sqlmap dbms mssql 编辑:程序博客网 时间:2024/05/16 09:14
转自:http://blog.csdn.net/u012561176/article/details/44986183


1.因为缺少了个例子,大家看文字和表格也看不出什么效果来,所以今天来介绍一个例子,用Struts2中UI标签的表单标签实现一个个人信息的表单,但是有些表单标签没有演示出来,大家可以根据我介绍UI标签的表单标签来进行学习,这里只是给个例子。


2.首先新建一个Struts2项目,项目名为PersonMessage,项目的结构图如下:


(1).首先新建一个jsp页面,页面名为form1.jsp,改变编码方式为utf-8,因为我们这里使用的是Struts2的UI标签,不是HTML的标签,所以必须用taglib 编译指令导入Struts2的标签库定义,其中必须在JSP页面的顶部加上这行代码:

[html] view plain copy
  1. <%@ taglib uri="/struts-tags" prefix="s"%>  


其中form1.jsp页面完整代码如下:

 

[html] view plain copy
  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  
  2. <%@ taglib uri="/struts-tags" prefix="s"%>  
  3. <%  
  4.     String path = request.getContextPath();  
  5.     String basePath = request.getScheme() + "://"  
  6.             + request.getServerName() + ":" + request.getServerPort()  
  7.             + path + "/";  
  8. %>  
  9.   
  10. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  11. <html>  
  12. <head>  
  13.   
  14. </head>  
  15.   
  16. <body>  
  17.     <center>  
  18.         <s:form action="personAction" namespace="/">  
  19.             <s:textfield name="username" label="用户名" />  
  20.             <br />  
  21.             <s:password name="password" label="密码" />  
  22.             <br />  
  23.             <s:textfield name="truename" label="真实姓名" />  
  24.             <br />  
  25.             <!-- 使用字符串集合生成单选框 -->  
  26.             <s:radio list="{'男','女'}" name="sex" label="性别"></s:radio>  
  27.             <br />  
  28.             <s:select list="#{'高中':'高中','大学':'大学','硕士':'硕士','博士':'博士'}"  
  29.                 name="education" label="最高学历"></s:select>  
  30.             <br />  
  31.             <!-- 使用Map对象来生成doubleselect -->  
  32.             <s:set name="pc"  
  33.                 value="#{'广东省':{'广州市','深圳市','珠海市','东莞市','中山市'},'江苏省':{'南京市','苏州市','扬州市' },'河南省':{'郑州市','洛阳市','开封市','南阳市'}}" />  
  34.             <s:doubleselect doubleList="#pc[top]" list="#pc.keySet()"  
  35.                 doubleName="city" label="所在省份的城市" name="province"></s:doubleselect>  
  36.             <br />  
  37.             <s:checkboxlist list="{'编程','音乐','写技术博客','玩游戏'}" name="favorite"  
  38.                 label="个人爱好"></s:checkboxlist>  
  39.             <br />  
  40.             <s:combobox list="{'苹果','香蕉','梨','草莓','西瓜','菠萝','芒果','橘子'}"  
  41.                 label="喜欢吃的水果" name="fruit" value="苹果"></s:combobox>  
  42.             <s:updownselect  
  43.                 list="#{'C语言':'C语言','Java':'Java','C#':'C#','c++':'c++','HTML':'HTML','R语言':'R语言'}"  
  44.                 label="你喜欢的编程语言" name="language" selectAllLabel="全选"  
  45.                 moveUpLabel="上移" moveDownLabel="下移"></s:updownselect>  
  46.   
  47.             <s:submit type="button" align="left" value="提交"></s:submit>  
  48.         </s:form>  
  49.     </center>  
  50. </body>  
  51. </html>  


在上面这个form1.jsp页面中使用<s:form>标签,并使用表单元素标签创建一些表单元素,以供用户输入或选择相关的内容,用<s:textfield>标签完成用户名和真实姓名的输入,用<s:password>标签完成密码的输入,用<s:radio>标签完成性别的选择,用<s:select>标签完成最高学历的选择,用<s:doubleselect>标签完成省份的城市的选择,用<checkboxlist>标签完成个人爱好的选择,用<s:combobox>标签完成喜欢吃的水果的选择,用<s:updownselect>标签完成喜欢的编程语言的选择,用<s:submit>标签提交,提交到personAction这个action去。


(2).接着新建一个PersonFormAction类,声明一些属性,并分别为这些属性创建get和set方法,重写ActionSupport类的execute()方法,完整代码如下:

[java] view plain copy
  1. package com.gk.action;  
  2.   
  3. import com.opensymphony.xwork2.ActionSupport;  
  4.   
  5. public class PersonFormAction extends ActionSupport {  
  6.     private String username;// 声明用户姓名属性  
  7.     private String password;// 声明密码属性  
  8.     private String truename;// 声明真实姓名属性  
  9.     private String sex;// 声明性别属性  
  10.     private String education;// 声明学历属性  
  11.     private String province;// 声明省份属性  
  12.     private String city;// 声明城市属性  
  13.     private String favorite;// 声明爱好属性  
  14.     private String fruit;// 声明喜欢吃的水果属性  
  15.     private String language;// 声明你喜欢的编程语言  
  16.   
  17.     /* 
  18.      * 为上面这些属性创建set和get方法 
  19.      */  
  20.     public String getUsername() {  
  21.         return username;  
  22.     }  
  23.   
  24.     public void setUsername(String username) {  
  25.         this.username = username;  
  26.     }  
  27.   
  28.     public String getPassword() {  
  29.         return password;  
  30.     }  
  31.   
  32.     public void setPassword(String password) {  
  33.         this.password = password;  
  34.     }  
  35.   
  36.     public String getTruename() {  
  37.         return truename;  
  38.     }  
  39.   
  40.     public void setTruename(String truename) {  
  41.         this.truename = truename;  
  42.     }  
  43.   
  44.     public String getSex() {  
  45.         return sex;  
  46.     }  
  47.   
  48.     public void setSex(String sex) {  
  49.         this.sex = sex;  
  50.     }  
  51.   
  52.     public String getEducation() {  
  53.         return education;  
  54.     }  
  55.   
  56.     public void setEducation(String education) {  
  57.         this.education = education;  
  58.     }  
  59.   
  60.     public String getProvince() {  
  61.         return province;  
  62.     }  
  63.   
  64.     public void setProvince(String province) {  
  65.         this.province = province;  
  66.     }  
  67.   
  68.     public String getCity() {  
  69.         return city;  
  70.     }  
  71.   
  72.     public void setCity(String city) {  
  73.         this.city = city;  
  74.     }  
  75.   
  76.     public String getFavorite() {  
  77.         return favorite;  
  78.     }  
  79.   
  80.     public void setFavorite(String favorite) {  
  81.         this.favorite = favorite;  
  82.     }  
  83.   
  84.     public String getFruit() {  
  85.         return fruit;  
  86.     }  
  87.   
  88.     public void setFruit(String fruit) {  
  89.         this.fruit = fruit;  
  90.     }  
  91.   
  92.     public String getLanguage() {  
  93.         return language;  
  94.     }  
  95.   
  96.     public void setLanguage(String language) {  
  97.         this.language = language;  
  98.     }  
  99.   
  100.     /** 
  101.      * 重写ActionSupport类的execute()方法 
  102.      */  
  103.     public String execute() {  
  104.         return SUCCESS;  
  105.     }  
  106. }  



(3).打开项目目录的struts.xml配置文件,向该文件添加PersonFormAction配置,完整代码如下:

[html] view plain copy
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE struts PUBLIC  
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.0.dtd">  
  5.   
  6. <struts>  
  7.     <constant name="struts.enable.DynamicMethodInvocation" value="true"></constant>  
  8.     <constant name="struts.devMode" value="true"></constant>  
  9.     <constant name="struts.custom.i18n.resources" value="globalMessages"></constant>  
  10.     <package name="person" namespace="/" extends="struts-default">  
  11.         <action name="personAction" class="com.gk.action.PersonFormAction">  
  12.             <result>/personinfo.jsp</result>  
  13.         </action>  
  14.     </package>  
  15. </struts>  



(4).接着在WebRoot目录下,新建一个personinfo.jsp页面,修改编码方式为utf-8,用来提交表单到action之后获得表单输入的内容,即获取action的属性值,完整代码如下:

[html] view plain copy
  1. <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>  
  2. <%@ taglib uri="/struts-tags" prefix="s"%>  
  3. <%  
  4.     String path = request.getContextPath();  
  5.     String basePath = request.getScheme() + "://"  
  6.             + request.getServerName() + ":" + request.getServerPort()  
  7.             + path + "/";  
  8. %>  
  9.   
  10. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  11. <html>  
  12. <head>  
  13. <base href="<%=basePath%>">  
  14.   
  15. <title>My JSP 'personinfo.jsp' starting page</title>  
  16.   
  17. <meta http-equiv="pragma" content="no-cache">  
  18. <meta http-equiv="cache-control" content="no-cache">  
  19. <meta http-equiv="expires" content="0">  
  20. <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  21. <meta http-equiv="description" content="This is my page">  
  22. <!-- 
  23.     <link rel="stylesheet" type="text/css" href="styles.css"> 
  24.     -->  
  25.   
  26. </head>  
  27.   
  28. <body>  
  29.     用户名为:  
  30.     <s:property value="username" />  
  31.     <br /> 密码为:  
  32.     <s:property value="password" />  
  33.     <br /> 真实姓名为:  
  34.     <s:property value="truename" />  
  35.     <br /> 性别为:  
  36.     <s:property value="sex" />  
  37.     <br /> 最高学历为:  
  38.     <s:property value="#parameters.education" />  
  39.     <br /> 所在地为:  
  40.     <s:property value="province" />  
  41.     <s:property value="city" />  
  42.     <br /> 个人爱好为:  
  43.     <s:property value="favorite" />  
  44.     <br/>喜欢吃的水果为:  
  45.     <s:property value="fruit"/>  
  46.     <br/>喜欢的编程语言是:  
  47.     <s:property value="#parameters.language"/>  
  48. </body>  
  49. </html>  

其中如果在使用表单标签,使用#{}这种方式赋值的话,获取属性时可以使用#parameters.属性名。


(5).通过上面4步代码的编写,就完成了个人信息表单的创建,并可以获得在表单相应输入的内容,接着部署这个项目到Tomcat服务器上,开启Tomcat服务器,在地址栏输入相应的地址后,如下图所示:

就出现了上图这个界面,可以由我们自己输入和选择其中的内容,我随便输入内容和选择后,如下图所示:

再点击提交按钮,就可以获取到输入和选择的内容:



3.以上内容仅供大家爱学习参考,写得不好,请见谅,如有错误,请指出,谢谢!

原创粉丝点击