structs 类型转换

本文介绍了一个使用Struts2框架处理日期输入的例子。通过自定义转换器实现日期格式的解析和格式化,确保了日期数据的正确处理。文章详细展示了web配置、页面代码及后端逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


date.jsp webroot/jsp

<%@page contentType="text/html;charset=utf-8" pageEncoding="utf-8" %>
<%@taglib uri="/struts-tags" prefix="s" %>
<%@taglib uri="/struts-dojo-tags" prefix="sx" %>
<html>
<head>
<sx:head/>
</head>
<body>
<s:property value="date"/>
<s:form action="DateAction" namespace="/test">
<s:textfield name="date" title="yyyy-MM-dd HH:mm:ss"></s:textfield>
<s:submit />
</s:form>
</body>

</html>

web.xml


<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.FilterDispatcher
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


DateAction-conversion.properties

date =com.zyl.test.converter.DateConverter

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

"http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="test"
namespace="/test"
extends="struts-default">

<action name="DateAction" class="com.zyl.servletapi.DateAction">
<result>/jsp/date.jsp</result>
<result name="input">/jsp/date.jsp</result>
</action>
</struts>


DateAction.java


package com.zyl.servletapi;

import java.util.Date;

import com.opensymphony.xwork2.ActionSupport;

public class DateAction extends ActionSupport {

private Date date;

public Date getDate() {
return date;
}

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

public String execute(){

return "success";
}


}


DateConverter.java


package com.zyl.test.converter;

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

import org.apache.struts2.util.StrutsTypeConverter;

public class DateConverter extends StrutsTypeConverter {

private static String[] availableDateFormat = new String[] {
"yyyy/MM/dd HH:mm:ss", "yyyy-MM-dd HH:mm:ss" };

private static SimpleDateFormat[] sdf = new SimpleDateFormat[] {
new SimpleDateFormat(availableDateFormat[0]),
new SimpleDateFormat(availableDateFormat[1]) };

@Override
public Object convertFromString(Map context, String[] paramFromBrowser,
Class targetClass) {

if (java.util.Date.class == targetClass) {
java.util.Date date = null;

String dateString = paramFromBrowser[0];

for (SimpleDateFormat dateFormatter : sdf) {

try {
date = dateFormatter.parse(dateString);
} catch (Exception e) {
}

}
if (date == null)
return new java.util.Date();
else
return date;

}
return null;

}

@Override
public String convertToString(Map arg0, Object source) {
String dateString = "";
if (source instanceof java.util.Date) {
Date date = (Date)source;

for (SimpleDateFormat dateFormatter : sdf) {

try {
dateString = dateFormatter.format(date);
} catch (Exception e) {
}

}

}
return dateString;
}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值