struts2怎么介入ognl的类型转换

J2EE 码拜 5年前 (2015-04-23) 171次浏览 0个评论

商品的类型有拍卖用和租赁用构成继承关系,页面上想用多态去构造后台对象,后台只声明父类商品对象,怎么控制才能根据传过来的类型去构造不同的子类?

struts2怎么介入ognl的类型转换
没有人么。。
struts2怎么介入ognl的类型转换
第一次发贴求助为啥沉的这么彻底。。
struts2怎么介入ognl的类型转换
传参进行判断呗
struts2怎么介入ognl的类型转换
引用 3 楼 fengzhidalu 的回复:

传参进行判断呗

后台声明的对象是父类的,子类的属性注入不进去,主要问题就是怎么把子类属性注入进去 

struts2怎么介入ognl的类型转换
70分
引用 4 楼 a24264055 的回复:
Quote: 引用 3 楼 fengzhidalu 的回复:

传参进行判断呗

后台声明的对象是父类的,子类的属性注入不进去,主要问题就是怎么把子类属性注入进去 

还是传参再判断值,通过重新new子类。通过重写构造方法实现。

public class A {
	private String attr;
	public String getAttr() {
		return attr;
	}
	public void setAttr(String attr) {
		this.attr = attr;
	}
	public A() {
	}
}
class B extends A {
	private String attrs;
	public String getAttrs() {
		return attrs;
	}
	public void setAttrs(String attrs) {
		this.attrs = attrs;
	}
	public B() {
	}
	public B(A a, String attrs) {
		setAttr(a.getAttr());
		setAttrs(attrs);
	}
}
class C {
	public static void main(String[] args) {
		String attrs = "a";
		A a = new A();
		a.setAttr("aaa");
		if (attrs != null) {
			a = new B(a, attrs);
		}
	}
}

不过说实话,你声明的是父类,但是指向的是子类对象,但是子类比父类对象字段更多,你接下来要操作子类中的属性还要进行强转。

struts2怎么介入ognl的类型转换
引用 5 楼 fengzhidalu 的回复:
Quote: 引用 4 楼 a24264055 的回复:
Quote: 引用 3 楼 fengzhidalu 的回复:

传参进行判断呗

后台声明的对象是父类的,子类的属性注入不进去,主要问题就是怎么把子类属性注入进去 

还是传参再判断值,通过重新new子类。通过重写构造方法实现。

public class A {
	private String attr;
	public String getAttr() {
		return attr;
	}
	public void setAttr(String attr) {
		this.attr = attr;
	}
	public A() {
	}
}
class B extends A {
	private String attrs;
	public String getAttrs() {
		return attrs;
	}
	public void setAttrs(String attrs) {
		this.attrs = attrs;
	}
	public B() {
	}
	public B(A a, String attrs) {
		setAttr(a.getAttr());
		setAttrs(attrs);
	}
}
class C {
	public static void main(String[] args) {
		String attrs = "a";
		A a = new A();
		a.setAttr("aaa");
		if (attrs != null) {
			a = new B(a, attrs);
		}
	}
}

不过说实话,你声明的是父类,但是指向的是子类对象,但是子类比父类对象字段更多,你接下来要操作子类中的属性还要进行强转。

主要是后台分属性的话十几个字段实在受不了,最坏的情况还是分action提交吧,不过总觉得要是可以改struts2的注入类型就会方便很多了。

struts2怎么介入ognl的类型转换
30分
用模型驱动就不用写那么多属性了,感觉你说的做法不好用

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明struts2怎么介入ognl的类型转换
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!