小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

Struts2自定義類型轉(zhuǎn)換器配置

 鷹皇軟件 2014-01-15

類型轉(zhuǎn)換分兩類

1 局部類型轉(zhuǎn)換
1.1 普通Action中的類型轉(zhuǎn)換
配置文件存放目錄:Action同級目錄;
配置文件名:Action名-conversion.properties文件
轉(zhuǎn)換器:自定義轉(zhuǎn)換器實現(xiàn)TypeConverter接口,可以直接繼承StrutsTypeConverter來實現(xiàn);
內(nèi)容:Action屬性名=轉(zhuǎn)換器包路徑

 

1.2 基于模型驅(qū)動的類型轉(zhuǎn)換
配置文件存放目錄:模型同級目錄;
配置文件名:模型名-conversion.properties文件
轉(zhuǎn)換器:自定義轉(zhuǎn)換器實現(xiàn)TypeConverter接口,可以直接繼承StrutsTypeConverter來實現(xiàn);
內(nèi)容:模型屬性名=轉(zhuǎn)換器包路徑

 

2 全局類型轉(zhuǎn)換
配置文件存放目錄:項目根目錄;
配置文件名:work-conversion.properties文件
轉(zhuǎn)換器:自定義轉(zhuǎn)換器實現(xiàn)TypeConverter接口,可以直接繼承StrutsTypeConverter來實現(xiàn);
內(nèi)容:要轉(zhuǎn)換的類型包路徑=轉(zhuǎn)換器包路徑

注意:若在模型驅(qū)動情況下,即配置了Action的類型轉(zhuǎn)換器又配置了對應(yīng)模型的轉(zhuǎn)換器,此時只會選擇模型轉(zhuǎn)換器;

 

3 示例

3.1 模型驅(qū)動情況示例

[TestAction.java]

package com.struts2.demo;

import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.struts2.demo.bean.TestBean;

public class TestAction extends ActionSupport implements ModelDriven{
 
 private static final long serialVersionUID = -3557249908855957132L;
 
 private TestBean bean = new TestBean();
 
 public TestBean getBean() {
  return bean;
 }

 public void setBean(TestBean bean) {
  this.bean = bean;
 }

 public String input() throws Exception {
  return "input";
 }
 
 public String execute() throws Exception {
        return "success";
    }

 public TestBean getModel() {
  return this.bean;
 }
}

 

[TestBean.java]

package com.struts2.demo.bean;

import java.math.BigDecimal;
import java.util.Date;

public class TestBean {
 private String str;
 private BigDecimal num;
 private BigDecimal[] numArray;
 private Date date;

 public String getStr() {
  return str;
 }

 public void setStr(String str) {
  this.str = str;
 }

 public BigDecimal getNum() {
  return num;
 }

 public void setNum(BigDecimal num) {
  this.num = num;
 }

 public BigDecimal[] getNumArray() {
  return numArray;
 }

 public void setNumArray(BigDecimal[] numArray) {
  this.numArray = numArray;
 }

 public Date getDate() {
  return date;
 }

 public void setDate(Date date) {
  this.date = date;
 }

}

 

[DateTypeConverter.java]

package com.struts2.demo;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import org.apache.struts2.util.StrutsTypeConverter;

public class DateTypeConverter extends StrutsTypeConverter {
 // Ognl默認會轉(zhuǎn)換yyyy-MM-dd格式的日期;這里測試使用yyyyMMdd格式;
 private static final SimpleDateFormat DEFAULT_FORMAT = new SimpleDateFormat("yyyyMMdd");
 
 @Override
 public Object convertFromString(Map context, String[] values, Class toClass) {
  if (values[0] == null || "".equals(values[0])) {
   return null;
  }
  
  Date result = null;
  try {
   if (toClass.equals(Date.class)) {
    result = DEFAULT_FORMAT.parse(values[0]);
   }
  } catch (ParseException e) {
   e.printStackTrace();
  }
  
  return result;
 }

 @Override
 public String convertToString(Map context, Object o) {
  String result = "";
  if (o != null) {
   result = DEFAULT_FORMAT.format(o);
  }
  return result;
 }
}


 

[demo.xml] include進struts.xml中;

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
        "http://struts./dtds/struts-2.0.dtd">

<struts>

    <package name="demo" namespace="/demo" extends="default">

        <action name="test_*" class="com.struts2.demo.TestAction" method="{1}">
            <result name="input">/WEB-INF/page/demo/input.jsp</result>
            <result name="success">/WEB-INF/page/demo/result.jsp</result>
        </action>

    </package>
</struts>


[input.jsp]

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>

<html>
<head><title>demo input</title></head>
<body>
    <s:form namespace="/demo" action="test" method="post">
    str: <s:textfield name="str" /><br/>
    num: <s:textfield name="num" /><br/>
    numArray: <s:textfield name="numArray" value="%{numArray[0]}"/><s:textfield name="numArray" value="%{numArray[1]}"/><br/>
    date: <s:textfield name="date" /><br/>
    <s:submit value="提交"></s:submit>
    </s:form>
</body>
</html>

 

[result.jsp]

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="s" uri="/struts-tags" %>

<html>
<head><title>demo result</title></head>
<body>
    str: <s:property value="bean.str"/><br/>
    num: <s:property value="bean.num"/><br/>
    numArray: <s:iterator value="bean.numArray">
     <s:property />
    </s:iterator><br/>
    date: <s:property value="bean.date"/><br/>
</body>
</html>

 

[TestBean-conversion.properties]

date=com.struts2.demo.DateTypeConverter

 

3.2 全局類型轉(zhuǎn)換器

將以上配置文件“TestBean-conversion.properties”改名為“xwork-conversion.properties”,內(nèi)容改為“java.util.Date=com.struts2.demo.DateTypeConverter”;

然后,將文件移動到項目源文件夾src下面;

 

以上測試通過!

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多