`
yahaitt
  • 浏览: 760869 次
  • 性别: Icon_minigender_2
  • 来自: 杭州
社区版块
存档分类
最新评论

struts2启程3

阅读更多

struts2启程之类型转换

类型转换要考虑两点:从客户端向服务器、从服务器向客户端。

1、从客户端向服务器转换,肯定是String类型转换成javaBean类型

2、从服务器端向客户端转换,肯定是javaBean类型转换成String类型

所以,这个转换类就需要考虑这两点

 类型转换的流程:

通过JSP页面将其中的一个元素值转换成javaBean值,在页面输出时,将取得的javaBean自动转换成了String类型,并输出。

要点文件:转换类、配置文件-维系转换类与Action类之间的纽带

一、写转换类的注意点:

1、继承ognl.DefaultTypeConverter类

2、重写convertValue(Map context, Object value, Class toType)方法

示例代码:

java 代码
  1. package com.test.convert;   
  2.   
  3. import java.util.Map;   
  4.   
  5. import com.test.bean.Point;   
  6.   
  7. import ognl.DefaultTypeConverter;   
  8.   
  9. public class PointConverter extends DefaultTypeConverter {   
  10.   
  11.     @Override  
  12.     public Object convertValue(Map context, Object value, Class toType) {   
  13.         if(Point.class == toType)   
  14.         {   
  15.             Point point = new Point();   
  16.             String[] str = (String[]) value;   
  17.             String[] points = str[0].split(",");   
  18.                
  19.             int x = Integer.parseInt(points[0]);   
  20.             int y = Integer.parseInt(points[1]);   
  21.                
  22.             point.setX(x);   
  23.             point.setY(y);   
  24.                
  25.             return point;   
  26.         }   
  27.         if(String.class == toType)   
  28.         {   
  29.             Point point = (Point) value;   
  30.                
  31.             String str = "[x=" + point.getX() + " , y=" + point.getY() + "]";   
  32.             return str;   
  33.         }   
  34.            
  35.         return null;   
  36.     }   
  37.        
  38. }   

 

二、写配置文件的注意点:

1、 配置文件名的位置:必须与应用这个转换类的Action类在同一个包中

2、 配置文件名称命名:必须是要应用这个转换类的Action类的名字加"-conversion.properties"

3、配置文件内容:"="号的左边是Action类中要转换的Bean所对应的属性名字,"="号的右边是转换类的全称(包名加类名)

 示例:

pointAction-conversion.properties
  1. point=com.test.convert.PointConverter  

 

java 代码
  1. package com.test.bean;   
  2.   
  3. public class Point {   
  4.     private int x;   
  5.     private int y;   
  6.     public int getX() {   
  7.         return x;   
  8.     }   
  9.     public void setX(int x) {   
  10.         this.x = x;   
  11.     }   
  12.     public int getY() {   
  13.         return y;   
  14.     }   
  15.     public void setY(int y) {   
  16.         this.y = y;   
  17.     }   
  18.        
  19. }   

 

java 代码
  1. package com.test.action;   
  2.   
  3. import java.util.Date;   
  4.   
  5. import com.opensymphony.xwork2.ActionSupport;   
  6. import com.test.bean.Point;   
  7.   
  8. public class PointAction extends ActionSupport {   
  9.     private Point point;   
  10.     private String username;   
  11.     private int age;   
  12.     private Date date;   
  13.     public Point getPoint() {   
  14.         return point;   
  15.     }   
  16.     public void setPoint(Point point) {   
  17.         this.point = point;   
  18.     }   
  19.     public String getUsername() {   
  20.         return username;   
  21.     }   
  22.     public void setUsername(String username) {   
  23.         this.username = username;   
  24.     }   
  25.     public int getAge() {   
  26.         return age;   
  27.     }   
  28.     public void setAge(int age) {   
  29.         this.age = age;   
  30.     }   
  31.     public Date getDate() {   
  32.         return date;   
  33.     }   
  34.     public void setDate(Date date) {   
  35.         this.date = date;   
  36.     }   
  37.        
  38.     @Override  
  39.     public String execute() throws Exception {   
  40.         return SUCCESS;   
  41.     }   
  42.        
  43.        
  44. }   

 

java 代码
  1. <!---->"1.0" encoding="UTF-8" ?>   
  2. <!---->
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  4.     "http://struts.apache.org/dtds/struts-2.0.dtd">   
  5. <struts></struts>  
  6.        
  7.     <package name="wjl_struts" extends="struts-default">   
  8.        
  9.         "login" class="com.test.action.LoginAction">   
  10.             "input">/login.jsp   
  11.             "success">/result.jsp   
  12.             "failed">/login.jsp   
  13.            
  14.            
  15.         "pointConvert" class="com.test.action.PointAction">   
  16.             "success">/output.jsp   
  17.            
  18.            
  19.     package>   
  20.        
  21.   

 

xml 代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>  
  2. <%@ taglib prefix="s" uri="/struts-tags" %>  
  3. <%   
  4. String path = request.getContextPath();   
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";   
  6. %>  
  7.   
  8. <!---->>  
  9. <html>  
  10.   <head>  
  11.     <base href="<!---->">  
  12.        
  13.     <title>My JSP 'input.jsp' starting pagetitle>  
  14.        
  15.     <meta http-equiv="pragma" content="no-cache">  
  16.     <meta http-equiv="cache-control" content="no-cache">  
  17.     <meta http-equiv="expires" content="0">       
  18.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  19.     <meta http-equiv="description" content="This is my page">  
  20.     <!---->  
  21.   
  22.   head>  
  23.      
  24.   <body>  
  25.     <s:form action="pointConvert">  
  26.         <s:textfield name="point" label="Point">s:textfield>  
  27.         <s:textfield name="username" label="username">s:textfield>  
  28.         <s:textfield name="age" label="age">s:textfield>  
  29.         <s:textfield name="date" label="date">s:textfield>  
  30.         <s:submit label="submit">s:submit>  
  31.     s:form>  
  32.   body>  
  33. html>  

 

xml 代码
  1. <%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>  
  2. <%@ taglib prefix="s" uri="/struts-tags" %>  
  3. <%   
  4. String path = request.getContextPath();   
  5. String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";   
  6. %>  
  7.   
  8. <!---->>  
  9. <html>  
  10.   <head>  
  11.     <base href="<!---->">  
  12.        
  13.     <title>My JSP 'output.jsp' starting pagetitle>  
  14.        
  15.     <meta http-equiv="pragma" content="no-cache">  
  16.     <meta http-equiv="cache-control" content="no-cache">  
  17.     <meta http-equiv="expires" content="0">       
  18.     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">  
  19.     <meta http-equiv="description" content="This is my page">  
  20.     <!---->  
  21.   
  22.   head>  
  23.      
  24.   <body>  
  25.     Point:<s:property value="point"/><br/>  
  26.     Username:<s:property value="username"/><br/>  
  27.     Age:<s:property value="age"/><br/>  
  28.     Date:<s:property value="date"/><br/>  
  29.   body>  
  30. html>  

 

 

分享到:
评论
1 楼 freepig 2008-02-24  
[img][/img][/url][url][flash=200,200][/flash][url][/url]
引用
[u][/u]                              

相关推荐

    Struts2漏洞检查工具Struts2.2019.V2.3

    3. 类加载器问题:Struts2使用了自定义的类加载机制,这为攻击者提供了利用的机会。通过特定的请求,攻击者可能可以加载并执行恶意类,进一步执行RCE。 4. 漏洞利用库:攻击者通常会利用已知的Struts2漏洞库,如CVE...

    struts2jar包

    Struts2是一个强大的Java EE应用程序框架,主要用于构建企业级的Web应用。它的核心是MVC(Model-View-Controller)设计模式,可以帮助开发者组织代码,提高开发效率,并且提供了丰富的特性来支持表单验证、国际化、...

    struts2-core.jar

    struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...

    Struts2漏洞测试

    Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试Struts2漏洞测试...

    struts2 最新漏洞 S2-016、S2-017修补方案 .docx

    Struts2 最新漏洞 S2-016、S2-017 修补方案 Struts2 是一个基于 Java 的 Web 应用程序框架,由 Apache 软件基金会维护。最近,Struts2 发生了两个严重的漏洞,分别是 S2-016 和 S2-017,这两个漏洞可能会导致攻击者...

    struts2项目开发

    3. 高效性:Struts2 框架提供了一个高效的架构,可以快速地处理用户的请求。 Struts2 框架的应用场景 Struts2 框架的应用场景包括: 1. 企业级应用程序:Struts2 框架适用于开发大型的企业级应用程序。 2. 电子...

    留言板留言板struts2留言板struts2

    3. **拦截器(Interceptor)**:Struts2的核心组件之一,可以理解为对请求和响应进行预处理和后处理的中间层。拦截器链是Struts2的一大特色,允许开发者自定义拦截器,实现如权限验证、日志记录、事务管理等功能。 4....

    struts2 总结工程大全

    struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...

    Struts2接口文档

    Struts2是一个强大的Java web应用程序开发框架,它基于Model-View-Controller(MVC)设计模式,旨在简化创建用户交互式、数据驱动的web应用的过程。这个“Struts2接口文档”是开发者的重要参考资料,提供了关于...

    Struts2视频教程

    ### Struts2核心知识点解析 #### 一、Struts2框架概述 - **定义与特点**:Struts2是一款基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它继承了Struts1的优点,同时在设计上更加灵活、易用,...

    struts1和struts2的区别

    ### Struts1与Struts2的主要区别 #### 概述 Apache Struts 是一个用于构建企业级Java Web应用的开源框架。它分为两个版本:Struts1 和 Struts2。虽然两者都基于模型-视图-控制器(MVC)设计模式,但它们之间存在...

    struts2jar.zip

    3. **依赖的第三方库**:Struts2依赖于其他的一些库,如ognl(Object-Graph Navigation Language)、freemarker(模板引擎)等。 4. **Spring整合包**:如果项目中使用了Spring框架,可能还需要struts2-spring-...

    Struts2教学视频

    3. 创建Struts2的配置文件struts.xml,定义Action、包(package)、namespace等。 **三、Namespace** Namespace是Struts2中用于组织Action的一种方式,可以看作是Action的命名空间。它有助于避免Action名称冲突,同时...

    Struts2VulsTools-Struts2系列漏洞检查工具

    该工具的打开路径为:\Struts2VulsTools-2.3.20190927\Test\bin\Release\Text.exe 2019-09-25: 优化部分EXP在部分情况下被WAF拦截的问题,提高检测成功率,优化自定义上传路径exp,文件所在目录不存在时自动创建...

    struts2所有jar包程序文件

    3. `ognl.jar`:Object-Graph Navigation Language (OGNL)是Struts2中使用的表达式语言,用于在视图层和模型层之间传递数据。 4. `freemarker.jar`和`velocity.jar`:这两种是模板引擎,用于生成动态HTML页面。...

    struts2-showcase.rar

    Struts2-showcase是一个用于演示和学习Apache Struts2框架功能的开源项目。这个压缩包“struts2-showcase.rar”包含了完整的源代码,旨在帮助开发者深入理解Struts2框架的工作原理及其各种特性。以下是对Struts2和...

    struts2的各种jar包

    3. **拦截器库**:`struts2-convention-plugin.jar`和`struts2-interceptor-plugin.jar`提供了多种内置拦截器,如Params拦截器处理参数绑定,Validation拦截器负责验证,以及Tiles拦截器用于页面布局。 4. **结果...

    struts2项目部署

    3. **配置web.xml**:在`web.xml`中配置Struts2的核心过滤器`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`。同时,确保配置了正确的Context路径和其他必要配置。 4. **配置struts.xml*...

    struts2环境搭建+struts2 新闻发布系统+struts2 留言板

    struts2环境搭建+struts2 新闻发布系统+struts2 留言板 struts2环境搭建:基础框架搭建,简单易上手,适合新手,比你看书强多了,实践源于理论而高于理论,贵在实践 朋友。 struts2 新闻发布系统:struts2+jsp 功能不...

    struts2中文学习文档

    3. **动态方法调用**:Struts2支持动态方法调用,即通过URL中的参数名自动映射到Action类的方法,大大简化了控制器的配置。 4. **国际化支持**:Struts2内置了强大的国际化支持,可以通过配置文件轻松实现多语言切换...

Global site tag (gtag.js) - Google Analytics