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

转自: 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.以上内容仅供大家爱学习参考,写得不好,请见谅,如有错误,请指出,谢谢!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
熟悉项目开发过程中SSM框架、JSP、Mysql使用,知道各技术之间的如何衔接; 考虑到部分学生只需要学习前台(买家)或是后台后台),故将电商系统分为电商系统前台和电商系统后台两个项目, 当前课程包含电商系统前台和电商系统后台 该课程主要涉及到的技术有:  项目涉及的技术:  1、前端:jsp、css、javascript、jQuery(js框架)、bootstrap框架 2、后台:Spring MVC、Spring、Mybatis框架javaMail进行邮件发送、jstl 、jstl自定义分页标签、代码生成器等 3、数据库:Mysql 4、服务器:Tomcat项目开发涉及的功能: 1、项目以及数据库搭建 2、用户登录、退出3、用户注册、邮件发送、以及用户信息激活4、首页商品信息页面搭建以及查询功能实现5、查询商品明细6、加入商品至购物车、删除、更新、清除购物车商品信息7、确认订单信息8、订单页面搭建以及下订单功能实现9、查询我的购物车以及订单信息10、商品明细查看,商品修改,商品下架11、商品类型管理12、订单管理13、代码机器人使用等等其他实战项目:java项目实战之电商系统全套(前台和后台)(java毕业设计ssm框架项目)https://edu.csdn.net/course/detail/25771 java项目之oa办公管理系统(java毕业设计)https://edu.csdn.net/course/detail/23008 java项目之hrm人事管理项目(java毕业设计)https://edu.csdn.net/course/detail/23007 JavaWeb项目实战之点餐系统前台https://edu.csdn.net/course/detail/20543 JavaWeb项目实战之点餐系统后台https://edu.csdn.net/course/detail/19572 JavaWeb项目实战之宿舍管理系统(Java毕业设计含源码)https://edu.csdn.net/course/detail/26721 JavaWeb项目实战之点餐系统全套(前台和后台)https://edu.csdn.net/course/detail/20610 java项目实战之电子商城后台java毕业设计SSM框架项目)https://edu.csdn.net/course/detail/25770 java美妆商城项目|在线购书系统(java毕业设计项目ssm版)https://edu.csdn.net/course/detail/23989 系统学习课程:JavaSE基础全套视频(环境搭建 面向对象 正则表达式 IO流 多线程 网络编程 java10https://edu.csdn.net/course/detail/26941 Java Web从入门到电商项目实战挑战万元高薪(javaweb教程)https://edu.csdn.net/course/detail/25976其他素材版(毕业设计或课程设计)项目:点击老师头像进行相关课程学习

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值