1 枚举类
public enum TrialType{
BUG("BUG"), IMPROVE("改进"), REQUIREMENT("需求");
private String value;
private TrialType(String value) {
this.value = value;
}
public String getValue() {
return value;
}
public String getKey(){
return this.toString();
}
public static void main(String[] args){
System.out.println(Enum.valueOf(TrialType.class, "BUG"));
for(TrialType t : TrialType.values()){
System.out.println(t.getValue());
System.out.println(t.getKey());
}
}
// bug 改进 需求
}// 反馈种类
2 ACTION中
2.1 显示成select
private Map<String, String> trialTypes = Maps.newHashMap();
public Map<String, String> getTrialTypes() {
for (TrialType t : TrialType.values()) {
trialTypes.put(t.getKey(), t.getValue());
}
return trialTypes;
}
3 页面上
<s:select list="trialTypes"
listKey="key" listValue="value" name="trialType" />
4 STRUTS2转换类
public class GenericEnumConverter extends StrutsTypeConverter {
@SuppressWarnings("unchecked")
@Override
public Object convertFromString(Map context, String[] values, Class toClass) {
if (toClass.isEnum()) {
if (values == null) {// 这个value的值就是 传来参数,比如性别的:男或女.
return null;
}
if (values.length == 1) {// 大家都知道表单中的name是可以同名的,当然会有数个的情况
return Enum.valueOf(toClass, values[0]);// toClass就是哪个枚举了比如我这的:SexType枚举,调用Enum.valueOf就可以根据String返回相应对象了.
} else {
Object[] oo = new Object[values.length];
for (int i = 0; i < values.length; i++) {
oo[i] = Enum.valueOf(toClass, values[i]);
}
return oo;
}
} else {
return null;
}
}
@Override
public String convertToString(Map context, Object o) {
return null;
}
}
在SRC下添加xwork-conversion.properties
java.lang.Enum=com.snda.swp.util.GenericEnumConverter
5 MYSQL 映射 ENUM类型需要注意
不能定义为tinyint 1位的不能会报错 至少2位
分享到:
相关推荐
创建一个自定义类型转换器,比如转换一个自定义的枚举类型。首先创建一个实现了`TypeConverter`接口的类,然后在Action类中使用注解或在配置文件中注册。接着,当Struts2接收到相关参数时,会自动调用自定义转换器...
在实际项目中,自定义类型转换器可能用于处理如日期格式、货币格式、枚举类型等特殊数据类型的转换。例如,我们可以创建一个转换器处理日期输入,将用户输入的"yyyy-MM-dd"格式字符串转换为Java的`java.util.Date`...
在这个“struts2枚举值、日期值转换示例”中,我们将关注如何自定义枚举值和日期值的转换器。 首先,枚举(Enum)在Java中是一种特殊的类,用于表示有限集合中的固定数量的值。在Struts2中,如果Action类的属性是...
7. **实战应用**:在实际项目中,类型转换常常用于处理复杂的对象,如枚举类型、自定义数据结构或者需要特殊验证的输入。通过自定义类型转换器,开发者可以确保用户输入的数据符合业务逻辑和安全要求。 总之,...
Struts2的JavaDoc文档包含了2.09版本的所有公开API接口、类、枚举、注解和方法的详细说明,是开发者了解和学习Struts2框架的重要参考资料。`struts-2.0.9-core.chm`文件是Struts2核心组件的JavaDoc,涵盖了框架的...
总的来说,Struts2对OGNL的封装主要体现在TypeConverter上,这是一个强大的工具,允许开发者自定义数据类型转换,以适应各种复杂的业务场景。理解并熟练使用TypeConverter能够极大地提升Struts2应用的灵活性和可维护...
开发者只需实现`org.apache.struts2.conversion.Converter`接口,然后通过配置注册这个转换器,即可让Struts2在处理特定类型时使用自定义的转换逻辑。 在转换过程中,如果出现任何异常,Struts2的`conversionError`...
2. **类型转换**:为了确保传入的字符串能够正确地转换为所需的Java对象类型,Struts2提供了内置的类型转换器,并允许用户自定义类型转换逻辑。这一步骤对于确保应用程序的安全性和数据完整性至关重要。 接下来,...
在实际开发中,我们可能需要对特定的数据格式进行特殊的转换,例如,处理特定的日期格式或者自定义的枚举类型。这时,可以自定义属性转换器。自定义转换器需要实现`org.apache.struts2.util.FieldConverter`接口或者...
总之,枚举的自定义转换器是Java开发中一个实用的工具,它使得枚举类型能够更灵活地与其他数据格式进行互换。通过实现不同的转换器,我们可以方便地处理枚举与字符串、整数或其他复杂对象之间的转换,提高代码的...
8. **枚举类型**:它的用法和特性,以及在设计模式中的应用。 9. **内部类与匿名类**:理解它们的用途和创建方式。 10. **Java集合框架**:List、Set、Queue和Map接口,以及它们的实现类如ArrayList、LinkedList、...
自定义注解可以包含变量,这些变量可以有默认值,并且可以使用枚举类型作为变量的类型。例如: ```java public @interface MyAnnotation { String value1() default "abc"; MyEnum value2() default MyEnum....
- 配置全局结果类型和常量,如`struts.action.extension`来指定请求的扩展名。 3. **Action类**: - 创建Action类,继承自`ActionSupport`,并实现CRUD方法。 - Action类中的每个方法都对应一个用户请求,返回值...
例如,枚举类型用于定义固定的常量集合,泛型则可以减少类型转换的错误,静态导入则简化了导入多个静态成员的代码。 Tomcat5.5是一个流行的开源Java应用服务器,专门用于运行Servlet和JSP应用。它是Apache软件基金...
2. **枚举和常量**:展示框架中使用的枚举类型和常量,例如Action、ResultType等。 3. **异常和错误**:列出可能抛出的异常,如StrutsException,以及如何处理这些异常。 4. **注解**:说明框架中使用的注解,如@...
- Struts2允许自定义拦截器,并可以通过`<package>`标签的`interceptors`或`default-interceptor-ref`定义拦截器栈。Struts2提供了一些内置拦截器,如`params`(处理请求参数)、`validation`(执行验证)、`i18n`...
4. **JDK 1.5**:Java Development Kit的第5个主要版本,引入了诸多新特性和改进,如自动装箱/拆箱、枚举类型、可变参数、泛型、注解等。这些特性使得代码更加安全、高效且易于维护,对于开发复杂的Java应用程序至关...
3.0版本是Hibernate的一个重大升级,它引入了HQL(Hibernate Query Language),提供了更强大的查询功能,支持CGLIB和JPA(Java Persistence API),并且对JDK 1.5的特性如枚举类型和注解有了更好的支持。...
JDK 5.0 是Java SE(标准版)的一个重要版本,引入了许多新的特性,如类型注解、枚举、泛型等。安装时需确保将其bin目录添加到系统PATH环境变量中,以便在任何地方都能执行Java命令。 #### Tomcat 5.5.9 Tomcat是一...