Java Struts 2和业务对象

Java Struts 2和业务对象,java,jakarta-ee,struts2,struts,business-objects,Java,Jakarta Ee,Struts2,Struts,Business Objects,在Struts 2类中。虽然在许多类中都有重复的类字段,如userId、groupId、等,但我决定在每个类中创建一个业务对象类RequestParams,并将所有字段放在那里 然后,我的所有类将只有RequestParams rp带有getRp()和setRp()rp类将具有带有getter/setter和所有其他字段的userId 现在我明白了,我必须更换。e、 guserId带有getRp()getUserId()在第34行,现在代码看起来很难看 使用以下命令:messageId=Chat

在Struts 2类中。虽然在许多类中都有重复的类字段,如
userId、groupId、
等,但我决定在每个类中创建一个业务对象类
RequestParams
,并将所有字段放在那里

然后,我的所有类将只有
RequestParams rp带有
getRp()
setRp()
rp类将具有带有getter/setter和所有其他字段的
userId

现在我明白了,我必须更换。e、 g
userId
带有
getRp()
getUserId()在第34行,现在代码看起来很难看

使用以下命令:
messageId=ChatDao.saveMessage(userId、groupId、message)

看起来像

rp.setMessageId(  ChatDao.saveMessage(rp.getUserId(), rp.getGroupId(), rp.getMessag()   )   );
做这些事情的更好方法是什么

public class SendMessageOrStartChatAction extends BaseActoinSupport{


    private static final long serialVersionUID = 1L;
    private int userId;
    private int groupType;
    private int groupId;
    private String groupTitle;
    private String groupMemberIds;
    private int randomCode;
    private String message;
    private int messageId; //internal class ues


    @Override
    /** boo */
    protected void doExecute() throws IOException {



        //check if it had random code in db, (msg already saved in db)
        if(ChatDao.randomCodeExists(randomCode)){
            messageId = ChatDao.getMessageIdThatMatchesRandomCode(randomCode);  
            write(messageId);

        }else{
            if(groupId <= 0){
            //create group 
                groupId = ChatDao.createChatGroup(userId, groupTitle, groupType);
                String[] memberIdsArray = groupMemberIds.split("=="); 
                ChatDao.addUsersToGroup(groupId, memberIdsArray);
            }
            //save message
            messageId = ChatDao.saveMessage(userId,groupId , message);
            // queued: may be put this in last viewed messages here. may be.
            write(messageId);       
        }

    }

}
公共类SendMessageOrStartChatAction扩展了BaseActoinSupport{
私有静态最终长serialVersionUID=1L;
私有int用户id;
私有int-groupType;
私有int-groupId;
私有字符串组标题;
私有字符串GroupMemberID;
私有整数随机码;
私有字符串消息;
private int messageId;//内部类
@凌驾
/**嘘声*/
受保护的void doExecute()引发IOException{
//检查数据库中是否有随机代码(消息已保存在数据库中)
if(ChatDao.randomCodeExists(randomCode)){
messageId=ChatDao.getMessageId匹配随机码(随机码);
写入(messageId);
}否则{

如果(groupId这种方法没有问题,如果您聚合一个类并希望访问它的属性,那么公共访问器对您来说是合适的,您也可以通过OGNL访问它们。该操作位于
valueStack
的顶部,因此表达式看起来更简单
“rp.userId”
例如,无论如何,不需要将所有参数传递给方法,您可以使用简化的方法签名

ChatDao.saveMessage(rp);  

并且在方法内部访问这些参数。

在执行
rp.randomCode
时,我得到“randomCode”有私有访问错误,如何才能
ChatDao.saveMessage(rp)
将知道哪些参数以及
保存消息的顺序
采用的方法可以按任何顺序访问它们。执行rp.randomCode时,我得到的“randomCode”有私人访问错误。我必须将其公开吗?这不是一个好做法