Struts2开发的基本配置与类型转换是开发Struts2应用的基础,需要掌握以下几个方面:
- 配置Struts2的核心过滤器
在web.xml文件中配置Struts2的核心过滤器,它是Struts2应用的入口,负责拦截所有请求并执行相应的操作。以下是配置示例:
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- 配置Struts2的常量
在struts.xml文件中配置Struts2的常量,包括文件上传大小限制、默认编码、JSP页面路径等。以下是常量配置示例:
<constant name="struts.multipart.maxSize" value="102400000"/>
<constant name="struts.i18n.encoding" value="UTF-8"/>
<constant name="struts.convention.default.parent.package" value="struts-default"/>
<constant name="struts.convention.action.suffix" value="Action"/>
<constant name="struts.convention.result.path" value="/WEB-INF/pages/"/>
- 配置Struts2的类型转换器
Struts2使用类型转换器将文本数据转换为Java对象,常见的类型转换包括日期、数字、枚举类型等。以下是类型转换器配置示例:
<package name="default" extends="struts-default">
<interceptors>
<interceptor name="paramsPrepareParamsStack"
class="org.apache.struts2.interceptor.params.ParamsPrepareParamsStack"/>
<interceptor name="defaultStack" class="org.apache.struts2.interceptor.DefaultStack"/>
</interceptors>
<action name="addUser" class="com.example.struts2.action.AddUserAction">
<interceptor-ref name="paramsPrepareParamsStack"/>
<interceptor-ref name="defaultStack"/>
<result name="success">/result.jsp</result>
<result name="input">/adduser.jsp</result>
</action>
<type-conversion>
<converter class="com.example.struts.converter.MyDateConverter"></converter>
<converter class="com.example.struts.converter.MyEnumConverter"></converter>
</type-conversion>
</package>
此外,在Java中也可自定义类型转换器,如下:
public class MyDateConverter extends StrutsTypeConverter {
private static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
@Override
public Object convertFromString(Map context, String[] values, Class clazz) {
if (values == null || values.length == 0) {
return null;
}
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
try {
return dateFormat.parse(values[0]);
} catch (ParseException e) {
return null;
}
}
@Override
public String convertToString(Map context, Object o) {
if (o == null) {
return null;
}
SimpleDateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT);
return dateFormat.format((Date) o);
}
}
以上就是Struts2开发基本配置与类型转换的完整攻略了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Struts2开发 基本配置与类型转换 - Python技术站