原来做的东西po和formbean的互转都在Action里进行,如此Action里会出现很多繁琐的代码,太难看了。
于是想到,是否可以将转化移到formbean里,不知如此设计是否优雅!
例如,如下:
public class MessageForm extends ActionForm {private static final long serialVersionUID = 8426826295606814692L; private Message message = new Message(); public MessageForm() { } public String getTitle() { return message.getTitle(); } public void setTitle(String title) { message.setTitle(title); } public Edition getStyle() { return message.getEdition(); } public void setStyle(String style) { Edition edition = new Edition(); String editionName = style.substring(style.indexOf('>') + 1, style.length()).trim(); edition.setName(editionName); message.setEdition(edition); } public String getContent() { return message.getContent(); } public void setContent(String content) { message.setContent(content); } public Set<File> getFile() { return message.getAttachments(); } public void setFile(String[] file) { Set<File> files = message.getAttachments(); for (String string : file) { File temp = new File(); temp.setId(Integer.parseInt(string)); files.add(temp); } } public Message getMessage() { return message; } public void setMessage(Message message) { this.message = message; } public void setGrantSee(String[] grantSee) { Set<MessageGrant> grants = message.getMessageGrants(); for (String string : grantSee) { String userName = string.substring(string.indexOf('>') + 1, string.length()).trim(); User user = new User(); user.setName(userName); MessageGrant tempGrant = new MessageGrant(); tempGrant.setUser(user); tempGrant.setMessage(message); Function function = new Function(); function.setName("see"); tempGrant.setFunction(function); grants.add(tempGrant); } } public void setGrantUpdate(String[] grantUpdate) { Set<MessageGrant> grants = message.getMessageGrants(); for (String string : grantUpdate) { String userName = string.substring(string.indexOf('>') + 1, string.length()).trim(); User user = new User(); user.setName(userName); MessageGrant tempGrant = new MessageGrant(); tempGrant.setUser(user); tempGrant.setMessage(message); Function function = new Function(); function.setName("update"); tempGrant.setFunction(function); grants.add(tempGrant); } }
}
你可以写个工具类啊(form和entity的转换),在action中调用啊
不要用这个了用lazyvalidatorform吧
你只要这样
[code="java"]LazyValidatorForm lazyForm = (LazyValidatorForm)form;
//得到页面中的值
String userName = lazyForm.get("userName");
绑定到PO
BeanUtils.copyproperties(PO,form);
[/code]
还不明白就搜一下吧。