dsm02955299 2009-03-17 21:16
浏览 305
已采纳

struts1.x里po转formBean

原来做的东西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);
    }
}

}



例外,最近翻出了一堆3,4年前的老帖,有提到将返回的业务数据list直接放在form当中,传入request使用,不知如此的设计和直接request.setAttribute()在设计上面个有什么有缺。莫非是因为将传递的数据封装后更加的oo?request不已经封装了吗?
  • 写回答

2条回答 默认 最新

  • qiao88 2009-03-18 13:35
    关注

    你可以写个工具类啊(form和entity的转换),在action中调用啊

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 vue3加ant-design-vue无法渲染出页面
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 路易威登官网 里边的参数逆向
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?
  • ¥50 需求一个up主付费课程
  • ¥20 模型在y分布之外的数据上预测能力不好如何解决
  • ¥15 processing提取音乐节奏
  • ¥15 gg加速器加速游戏时,提示不是x86架构
  • ¥15 python按要求编写程序