加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

struts2_struts类型转换

发布时间:2020-12-14 06:26:15 所属栏目:Java 来源:网络整理
导读:一.在Servlet中,表单提交的非字符串类型需要手动转换 1.在struts中,表单提供的常见数据类型struts框架自动转换,无需手动转换 2.在某些情况下,某些自定义类型struts不能完成自动转换,需要进行手动转换,如果需要转换的类型转换频率较高时,手动转换的代码增多,

一.在Servlet中,表单提交的非字符串类型需要手动转换

  

  1.在struts中,表单提供的常见数据类型struts框架自动转换,无需手动转换

  2.在某些情况下,某些自定义类型struts不能完成自动转换,需要进行手动转换,如果需要转换的类型转换频率较高时,手动转换的代码增多,这时可以使用struts的类型转换器来进行转换

二.类型转换

  

使用类型转换的步骤

  1. 编写类型转换器,继承StrutsTypeConverter
  2. 编写xwork-conversion.properties配置文件,内容为:要转换的类型=类型转换器

?案例:

  编写实体类:Point

<span style="color: #0000ff">public <span style="color: #0000ff">class<span style="color: #000000"> Point {
<span style="color: #0000ff">private <span style="color: #0000ff">int<span style="color: #000000"> x;
<span style="color: #0000ff">private <span style="color: #0000ff">int<span style="color: #000000"> y;

</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;int</span><span style="color: #000000"&gt; getX() {
    </span><span style="color: #0000ff"&gt;return</span><span style="color: #000000"&gt; x;
}
</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;void</span> setX(<span style="color: #0000ff"&gt;int</span><span style="color: #000000"&gt; x) {
    </span><span style="color: #0000ff"&gt;this</span>.x =<span style="color: #000000"&gt; x;
}
</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;int</span><span style="color: #000000"&gt; getY() {
    </span><span style="color: #0000ff"&gt;return</span><span style="color: #000000"&gt; y;
}
</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;void</span> setY(<span style="color: #0000ff"&gt;int</span><span style="color: #000000"&gt; y) {
    </span><span style="color: #0000ff"&gt;this</span>.y =<span style="color: #000000"&gt; y;
}
@Override
</span><span style="color: #0000ff"&gt;public</span><span style="color: #000000"&gt; String toString() {
    </span><span style="color: #0000ff"&gt;return</span> "(" + x + "," + y + ")"<span style="color: #000000"&gt;;
}

}

  编写PointAction

<span style="color: #0000ff">import<span style="color: #000000"> com.ahd.entity.Point;
<span style="color: #0000ff">import<span style="color: #000000"> com.opensymphony.xwork2.Action;
<span style="color: #0000ff">import<span style="color: #000000"> com.opensymphony.xwork2.ActionSupport;

<span style="color: #0000ff">public <span style="color: #0000ff">class PointAction <span style="color: #0000ff">extends<span style="color: #000000"> ActionSupport{
<span style="color: #0000ff">private<span style="color: #000000"> Point point;

</span><span style="color: #0000ff"&gt;public</span><span style="color: #000000"&gt; Point getPoint() {
    </span><span style="color: #0000ff"&gt;return</span><span style="color: #000000"&gt; point;
}
</span><span style="color: #0000ff"&gt;public</span> <span style="color: #0000ff"&gt;void</span><span style="color: #000000"&gt; setPoint(Point point) {
    </span><span style="color: #0000ff"&gt;this</span>.point =<span style="color: #000000"&gt; point;
}


@Override
</span><span style="color: #0000ff"&gt;public</span> String execute() <span style="color: #0000ff"&gt;throws</span><span style="color: #000000"&gt; Exception {
    </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt; TODO Auto-generated method stub</span>
    System.out.println(point.getX()+<span style="color: #000000"&gt;point.getY());
    System.out.println(point);
    </span><span style="color: #0000ff"&gt;return</span><span style="color: #000000"&gt; Action.SUCCESS;
}

}

  xwork-conversion.properties

com.ahd.entity.Point=com.ahd.converter.PointConverter

  编写类型转换器:PointTypeConverter,继承StrutsTypeConverter类,并重写convertFromString方法和convertToString方法,

<span style="color: #0000ff">import<span style="color: #000000"> java.util.Map;

<span style="color: #0000ff">import<span style="color: #000000"> org.apache.struts2.util.StrutsTypeConverter;

<span style="color: #0000ff">import<span style="color: #000000"> com.ahd.entity.Point;

<span style="color: #0000ff">public <span style="color: #0000ff">class PointConverter <span style="color: #0000ff">extends<span style="color: #000000"> StrutsTypeConverter{

@Override
</span><span style="color: #0000ff"&gt;public</span><span style="color: #000000"&gt; Object convertFromString(Map context,String[] values,Class toClass) {
    </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt; TODO Auto-generated method stub</span>
    String value=values[0<span style="color: #000000"&gt;];
    Point point</span>=<span style="color: #0000ff"&gt;new</span><span style="color: #000000"&gt; Point();

    </span><span style="color: #0000ff"&gt;int</span> x=Integer.parseInt(value.substring(0,value.indexOf(","<span style="color: #000000"&gt;)));
    </span><span style="color: #0000ff"&gt;int</span> y=Integer.parseInt(value.substring( value.indexOf(",")+1<span style="color: #000000"&gt;,value.length()));

    point.setX(x);
    point.setY(y);

    </span><span style="color: #0000ff"&gt;return</span><span style="color: #000000"&gt; point;
}

@Override
</span><span style="color: #0000ff"&gt;public</span><span style="color: #000000"&gt; String convertToString(Map context,Object o) {
    </span><span style="color: #008000"&gt;//</span><span style="color: #008000"&gt; TODO Auto-generated method stub</span>
    Point point=<span style="color: #000000"&gt;(Point)o;
    </span><span style="color: #0000ff"&gt;return</span> "("+point.getX()+","+point.getY()+")"<span style="color: #000000"&gt;;
}

}

  

  struts.xml

<span style="color: #0000ff"><!<span style="color: #ff00ff">DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"struts-2.0.dtd"<span style="color: #0000ff">>

<span style="color: #0000ff"><<span style="color: #800000">struts<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">package <span style="color: #ff0000">name<span style="color: #0000ff">="struts2"<span style="color: #ff0000"> extends<span style="color: #0000ff">="struts-default"<span style="color: #ff0000"> namespace<span style="color: #0000ff">=""<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">action <span style="color: #ff0000">name<span style="color: #0000ff">="point"<span style="color: #ff0000"> class<span style="color: #0000ff">="com.ahd.action.PointAction"<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">result<span style="color: #0000ff">>/success.jsp<span style="color: #0000ff"></<span style="color: #800000">result<span style="color: #0000ff">>
<span style="color: #0000ff"><<span style="color: #800000">result <span style="color: #ff0000">name<span style="color: #0000ff">="input"<span style="color: #0000ff">>/input.jsp<span style="color: #0000ff"></<span style="color: #800000">result<span style="color: #0000ff">>
<span style="color: #0000ff"></<span style="color: #800000">action<span style="color: #0000ff">>
<span style="color: #0000ff"></<span style="color: #800000">package<span style="color: #0000ff">>
<span style="color: #0000ff"></<span style="color: #800000">struts<span style="color: #0000ff">>

  

  web.xml

struts2_02_modelDrive
<span style="color: #0000ff"&gt;<</span><span style="color: #800000"&gt;filter</span><span style="color: #0000ff"&gt;></span>
    <span style="color: #0000ff"&gt;<</span><span style="color: #800000"&gt;filter-name</span><span style="color: #0000ff"&gt;></span>struts2<span style="color: #0000ff"&gt;</</span><span style="color: #800000"&gt;filter-name</span><span style="color: #0000ff"&gt;></span>
    <span style="color: #0000ff"&gt;<</span><span style="color: #800000"&gt;filter-class</span><span style="color: #0000ff"&gt;></span>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter<span style="color: #0000ff"&gt;</</span><span style="color: #800000"&gt;filter-class</span><span style="color: #0000ff"&gt;></span>
<span style="color: #0000ff"&gt;</</span><span style="color: #800000"&gt;filter</span><span style="color: #0000ff"&gt;></span>
<span style="color: #0000ff"&gt;<</span><span style="color: #800000"&gt;filter-mapping</span><span style="color: #0000ff"&gt;></span>
    <span style="color: #0000ff"&gt;<</span><span style="color: #800000"&gt;filter-name</span><span style="color: #0000ff"&gt;></span>struts2<span style="color: #0000ff"&gt;</</span><span style="color: #800000"&gt;filter-name</span><span style="color: #0000ff"&gt;></span>
    <span style="color: #0000ff"&gt;<</span><span style="color: #800000"&gt;url-pattern</span><span style="color: #0000ff"&gt;></span>/*<span style="color: #0000ff"&gt;</</span><span style="color: #800000"&gt;url-pattern</span><span style="color: #0000ff"&gt;></span>
<span style="color: #0000ff"&gt;</</span><span style="color: #800000"&gt;filter-mapping</span><span style="color: #0000ff"&gt;></span>

<span style="color: #0000ff"&gt;<</span><span style="color: #800000"&gt;welcome-file-list</span><span style="color: #0000ff"&gt;></span>
    <span style="color: #0000ff"&gt;<</span><span style="color: #800000"&gt;welcome-file</span><span style="color: #0000ff"&gt;></span>index.html<span style="color: #0000ff"&gt;</</span><span style="color: #800000"&gt;welcome-file</span><span style="color: #0000ff"&gt;></span>
    <span style="color: #0000ff"&gt;<</span><span style="color: #800000"&gt;welcome-file</span><span style="color: #0000ff"&gt;></span>index.htm<span style="color: #0000ff"&gt;</</span><span style="color: #800000"&gt;welcome-file</span><span style="color: #0000ff"&gt;></span>
    <span style="color: #0000ff"&gt;<</span><span style="color: #800000"&gt;welcome-file</span><span style="color: #0000ff"&gt;></span>index.jsp<span style="color: #0000ff"&gt;</</span><span style="color: #800000"&gt;welcome-file</span><span style="color: #0000ff"&gt;></span>
    <span style="color: #0000ff"&gt;<</span><span style="color: #800000"&gt;welcome-file</span><span style="color: #0000ff"&gt;></span>default.html<span style="color: #0000ff"&gt;</</span><span style="color: #800000"&gt;welcome-file</span><span style="color: #0000ff"&gt;></span>
    <span style="color: #0000ff"&gt;<</span><span style="color: #800000"&gt;welcome-file</span><span style="color: #0000ff"&gt;></span>default.htm<span style="color: #0000ff"&gt;</</span><span style="color: #800000"&gt;welcome-file</span><span style="color: #0000ff"&gt;></span>
    <span style="color: #0000ff"&gt;<</span><span style="color: #800000"&gt;welcome-file</span><span style="color: #0000ff"&gt;></span>default.jsp<span style="color: #0000ff"&gt;</</span><span style="color: #800000"&gt;welcome-file</span><span style="color: #0000ff"&gt;></span>
<span style="color: #0000ff"&gt;</</span><span style="color: #800000"&gt;welcome-file-list</span><span style="color: #0000ff"&gt;></span>

<span style="color: #0000ff"></<span style="color: #800000">web-app<span style="color: #0000ff">>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读