`
blueram
  • 浏览: 757646 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

struts2 ModelDriven 应该注意的问题

JSP 
阅读更多

item实体类,主要属性

	@Id
	@GeneratedValue
	private int id;
	
	@Column(nullable=true)
	private String itemNo;
	
	@Column(nullable=true)
	private String itemName;
	
	//物料规格
	private String spec;
	
	//物料型号
	private String pattern;
	
	@OneToOne
	@JoinColumn
	private ItemCategory category;
	
	@OneToOne
	@JoinColumn
	private ItemUnit unit;

 由于item,关联ItemCategory, ItemUnit两个类

 

因此在由jsp页面向action传递参数的时候,就有一些问题了,如果只是使用Modeldriven来处理,是不行的,

需要辅助处理,应该按照下面的实现。ModelDriven在向item赋值的时候,如果只是普通属性,那么就可以自行进行

类型转换,但是现在这里有自己定义的类型,就不行了。

 

	public class ItemAction extends ActionSupport implements ModelDriven{
	private Item item;
	private String categoryId;
	private String unitId;
	private String[] selectFlag;

 

 把jsp也面的name的值设置为categoryId;这样子的话ModelDriven就不会为item赋值了。

这样我们自己取得在设置里面,就可以更新和存储了。

 

也可以不使用ModelDriven,在jsp页面使用这样传值

 

<input type="" name="item.id">
<input type="" name="item.itemName">
<input type="" name="item.itemNo">
<input type="" name="item.spec">
<input type="" name="item.pattern">
<input type="" name="item.category.id">
<input type="" name="item.unit.id">


 

这样也很灵活

分享到:
评论
1 楼 livexu 2010-11-17  
@Id 
@GeneratedValue 
private int id; 
 
@Column(nullable=true) 
private String itemNo; 
 
@Column(nullable=true) 
private String itemName; 
 
//物料规格 
private String spec; 
 
//物料型号 
private String pattern; 
 
@OneToOne 
@JoinColumn 
private ItemCategory category; 
 
引用
@OneToMany 
@JoinColumn 
private Set<ItemUnit> units
;  这个怎么办呢

相关推荐

Global site tag (gtag.js) - Google Analytics