文档章节

struts2的类型转换——Struts2第二讲

一别经年
 一别经年
发布于 2014/06/13 21:15
字数 897
阅读 8
收藏 0
点赞 0
评论 0

类型转换

注:本文系作者在看了浪曦的风中叶老师的struts2视频的个人总结,希望能帮助广大struts2的初学者。 
第一步:(这一步和其他一样,这里从简) 
依旧是新建一个web project,命名为struts2,导入struts2必须的包。在src目录下新建struts.xml,修改web.xml文件。 

第二步: 
将index.jsp改名为input.jsp(这个不是必须的,事实上也没有必要,此处只是为了便于称呼)。Input.jap的代码如下 

Java代码  收藏代码

  1. <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>  

  2. <%  

  3. String path = request.getContextPath();  

  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  

  5. %>  

  6. <%@ taglib prefix="s"  uri="/struts-tags" %>  

  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  

  8. <html>  

  9.   <head>  

  10.     <base href="<%=basePath%>">  

  11.       

  12.     <title>My JSP 'index.jsp' starting page</title>  

  13.     <meta http-equiv="pragma" content="no-cache">  

  14.     <meta http-equiv="cache-control" content="no-cache">  

  15.     <meta http-equiv="expires" content="0">      

  16.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  

  17.     <meta http-equiv="description" content="This is my page">  

  18.     <!--  

  19.     <link rel="stylesheet" type="text/css" href="styles.css">  

  20.     -->  

  21.   </head>  

  22.     

  23.   <body>  

  24.   <h1><font color='red'> 请输入坐标,用英文半角逗号隔开</font></h1>  

  25.    <s:form action="pointconverter">  

  26.         <s:textfield name="point1" label="point1"></s:textfield>  

  27.         <s:textfield name="point2" label="point2"></s:textfield>  

  28.         <s:textfield name="point3" label="point3"></s:textfield>  

  29.           

  30.         <s:submit name="submit"> </s:submit>  

  31.    </s:form>  

  32.   </body>  

  33. </html>  



该文件有两个要注意的地方 
1.使用了struts2的标签库 <%@ taglib prefix="s"  uri="/struts-tags" %> 
2.f注意form中的action属性 

第三步: 
在src下新建包com.beam,其中定义point类 point.java 代码如下: 

Java代码  收藏代码

  1. package com.bean;  

  2.   

  3. public class Point {  

  4.   

  5.       

  6.   

  7.         public int getX() {  

  8.             return x;  

  9.         }  

  10.         public void setX(int x) {  

  11.             this.x = x;  

  12.         }  

  13.         public int getY() {  

  14.             return y;  

  15.         }  

  16.         public void setY(int y) {  

  17.             this.y = y;  

  18.         }  

  19.           

  20.           

  21.           

  22.         private int x;  

  23.         private int y;  

  24. }  



Action 
在src下新建包com.action 
其中新建类PointAction.java 代码如下 

Java代码  收藏代码

  1. package com.action;  

  2.   

  3. import com.opensymphony.xwork2.ActionSupport;  

  4. import com.bean.Point;  

  5. public class PointAction extends ActionSupport  

  6. {  

  7.   

  8.         public Point getPoint1() {  

  9.             return point1;  

  10.         }  

  11.         public void setPoint1(Point point1) {  

  12.             this.point1 = point1;  

  13.         }  

  14.         public Point getPoint2() {  

  15.             return point2;  

  16.         }  

  17.         public void setPoint2(Point point2) {  

  18.             this.point2 = point2;  

  19.         }  

  20.         public Point getPoint3() {  

  21.             return point3;  

  22.         }  

  23.         public void setPoint3(Point point3) {  

  24.             this.point3 = point3;  

  25.         }  

  26.   

  27.         public String execute() throws Exception  

  28.         {  

  29.             return SUCCESS;  

  30.         }  

  31.           

  32.                        

  33.         private Point point1;  

  34.         private Point point2;  

  35.         private Point point3;  

  36.           

  37. }  



第五步:配置struts.xml文件 代码如下: 

Xml代码  收藏代码

  1. <?xml version="1.0" encoding="utf-8" ?>  

  2. <!DOCTYPE struts PUBLIC  

  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   

  4.     "struts.apache.org/dtds/struts-2.0.dtd">  

  5.       

  6.     <struts>  

  7.       

  8.             <package name="struts2"  extends="struts-default">  

  9.                     <action name="pointconverter" class="com.action.PointAction">  

  10.                                 <result name="success">/output.jsp</result>  

  11.                                 <result name="input">/input.jsp</result>  

  12.                     </action>  

  13.             </package>  

  14.     </struts>  


第六步: 
在WebRoot下新建视图output.jsp 依旧运用struts2的标签库 代码如下 

Jsp代码  收藏代码

  1. <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>  

  2. <%  

  3. String path = request.getContextPath();  

  4. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";  

  5. %>  

  6. <%@ taglib prefix="s" uri="/struts-tags" %>  

  7. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  

  8. <html>  

  9.   <head>  

  10.     <base href="<%=basePath%>">  

  11.       

  12.     <title>My JSP 'output.jsp' starting page</title>  

  13.       

  14.     <meta http-equiv="pragma" content="no-cache">  

  15.     <meta http-equiv="cache-control" content="no-cache">  

  16.     <meta http-equiv="expires" content="0">      

  17.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  

  18.     <meta http-equiv="description" content="This is my page">  

  19.     <!--  

  20.     <link rel="stylesheet" type="text/css" href="styles.css">  

  21.     -->  

  22.   

  23.   </head>  

  24.     

  25.   <body>  

  26.   

  27.    point1:<s:property value="point1"/><br>  

  28.    point2: <s:property value="point2"/><br>  

  29.    point3 <s:property value="point3"/>  

  30.   </body>  

  31. </html>  


第七步:类型转化器 
在src目录下新建com.converter包 其中新建类PointConverter.java 代码如下 

Java代码  收藏代码

  1. package com.converter;  

  2.   

  3. import java.util.Map;  

  4.   

  5. import org.apache.struts2.util.StrutsTypeConverter;  

  6. import com.bean.Point;  

  7. public class PointConverter extends StrutsTypeConverter {  

  8.   

  9.     @Override  

  10.     public Object convertFromString(Map arg0, String[] arg1, Class arg2) {  

  11.           

  12.         Point point = new Point();  

  13.          String[] values= arg1[0].split(",");  

  14.            

  15.          int x = Integer.parseInt(  values[0].trim() );  

  16.          int y = Integer.parseInt(  values[1].trim()  );  

  17.            

  18.          point.setX(x);  

  19.          point.setY(y);  

  20.            

  21.          return point;  

  22.           

  23.           

  24.     }  

  25.   

  26.     @Override  

  27.     public String convertToString(Map arg0, Object arg1) {  

  28.   

  29.                 Point  point = (Point) arg1;  

  30.                   

  31.                 int x = point.getX();  

  32.                 int y  = point.getY();  

  33.                   

  34.                 String result = "<x= "+x+" ,  y="+y+" >";  

  35.                   

  36.                 return result;  

  37.     }  

  38.   

  39. }  



第八步: 
使类型转化器和action中的对应point属性关联起来新建一个properties文件 
这里有两种方法: 
第一种是在com.converter包中新建一个PointAction-conversion.properties文件 
代码如下: 

Properties代码  收藏代码

  1. point1=com.converter.PointConverter  

  2. point2=com.converter.PointConverter  

  3. point3=com.converter.PointConverter  



第二种:是在src目录下直接新建一个文件 xwork-conversion.properties 
代码如下 

Properties代码  收藏代码

  1. com.bean.Point=com.converter.PointConverter  


ok

struts2下的helloworld(如何让第一个stru ... | 输入校验(1)——struts2第三讲


本文转载自:http://javaweb.group.iteye.com/group/wiki/1506-struts2-type-of-conversion---struts2-second-stresses

共有 人打赏支持
一别经年
粉丝 17
博文 173
码字总数 58546
作品 0
西安
程序员
新书预告 :《Struts2技术内幕》 —— Struts2源码研究和Web开发研究

http://www.iteye.com/topic/1117044 简单做一个新书预告,我写的《Struts2技术内幕》将在下个月问世。 这本书应该是国内比较少见的以研究Struts2的源码为主要目标的技术书籍。源码研究类的书...

ddatsh
2011/10/26
1K
8
深入了解Struts2返回JSON数据的原理及具体应用范例

JSON建构于两种结构: “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表 ...

goover1001
2014/03/12
0
0
Java程序员从笨鸟到菜鸟之(四十四)细谈struts2(七)数据类型转换详解

本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188 Web应用程序的交互都是建立在HTTP之上的,互相传递的都是字符串。也就是说服务器接收到的来自用户的数据只能...

长平狐
2012/11/12
47
0
(总结)Struts1和Struts2的区别

以前学的时候我们就是直接接触struts2,也没太关心这个struts1,正好我们公司用的是struts1,上网看过很多写这方面的博文的,写的也都很好、讲解的很详细、但是各有各的优点、我就总结了一下拿...

IT妖姬
2014/10/21
0
0
Java程序员从笨鸟到菜鸟全部博客目录【2012年十一月七日更新】

本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188 大学上了一年半,接触java也一年半了,虽然中间也有其他东西的学习,但是还是以java为主路线,想想这一年半,...

长平狐
2012/11/12
103
0
Java程序员从笨鸟到菜鸟全部博客目录【2012年十一月七日更新】

本文来自:曹胜欢博客专栏。转载请注明出处:http://blog.csdn.net/csh624366188 大学上了一年半,接触java也一年半了,虽然中间也有其他东西的学习,但是还是以java为主路线,想想这一年半,...

长平狐
2012/11/12
79
0
struts2实战教程

Struts2.0已经成为了一个高度成熟的框架,不管是稳定性还是可靠性都得到了广泛的证明。 拥有丰富的开发人群,几乎已经成为了事实上的工业标准。因此,学习MVC框架,struts2.0几乎是必须熟悉的...

2846613430
2016/04/25
157
0
《Java程序员由笨鸟到菜鸟》电子版书正式发布,欢迎大家下载

在众多朋友的支持和鼓励下,《Java程序员由菜鸟到笨鸟》电子版终于和大家见面了。本电子书涵盖了从java基础到javaweb开放框架的大部分内容。在编写的过程中,难免会出现一些错误,希望大家能...

长平狐
2012/11/12
78
0
《Java程序员由笨鸟到菜鸟》电子版书正式发布,欢迎大家下载

在众多朋友的支持和鼓励下,《Java程序员由菜鸟到笨鸟》电子版终于和大家见面了。本电子书涵盖了从java基础到javaweb开放框架的大部分内容。在编写的过程中,难免会出现一些错误,希望大家能...

长平狐
2012/11/12
84
0
java--Struts2入门示例教程(五)

今天在做一个Struts2的简单实例,楼主看的是大学教科书-《JavaEE基础实用教程》第三章的例子。 由于书有些老了,加上Struts框架又做了一些更新。所以有些地方需要拿出来说下,让新人伙伴们能...

萧沐垚
2016/12/16
15
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

pbgo: 基于Protobuf的迷你RPC/REST框架

https://www.oschina.net/p/pbgo

chai2010
40分钟前
0
0
rsync工具介绍、常用选项以及通过ssh同步

linux下的文件同步工具 rsync rsync是非常实用的一个同步工具,可以从a机器到b机器传输一个文件,也可以备份数据,系统默认没有这个工具,要使用命令 yum install -y rsync 安装。 rsync的命...

黄昏残影
55分钟前
0
0
OSChina 周四乱弹 —— 表妹要嫁人 舅妈叮嘱……

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @哈哈哈哈哈嗝:一定要听——The Pancakes的单曲《咁咁咁》 《咁咁咁》- The Pancakes 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :...

小小编辑
今天
311
4
流利阅读笔记30-20180719待学习

重磅:让人类得老年痴呆的竟是它? Lala 2018-07-19 1.今日导读 去年奥斯卡最佳动画长片《寻梦环游记》里有一句经典台词:“比死亡更可怕的,是遗忘”。在电影中,年迈的曾祖母会重复说一样的...

aibinxiao
今天
3
0
1.16 Linux机器相互登录

Linux机器之间以密码方式互相登录 运行命令#ssh [ip address],标准命令:#ssh [username]@ip, 如果没有写用户名,则默认为系统当前登录的用户 命令#w查看系统负载,可查看到连接到该主机的...

小丑鱼00
今天
0
0
about git flow

  昨天元芳做了git分支管理规范的分享,为了拓展大家关于git分支的认知,这里我特意再分享这两个关于git flow的链接,大家可以看一下。 Git 工作流程 Git分支管理策略   git flow本质上是...

qwfys
今天
2
0
Linux系统日志文件

/var/log/messages linux系统总日志 /etc/logrotate.conf 日志切割配置文件 参考https://my.oschina.net/u/2000675/blog/908189 dmesg命令 dmesg’命令显示linux内核的环形缓冲区信息,我们可...

chencheng-linux
今天
1
0
MacOS下给树莓派安装Raspbian系统

下载镜像 前往 树莓派官网 下载镜像。 点击 最新版Raspbian 下载最新版镜像。 下载后请,通过 访达 双击解压,或通过 unzip 命令解压。 检查下载的文件 ls -lh -rw-r--r-- 1 dingdayu s...

dingdayu
今天
3
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
今天
2
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部