条件对象填充

vyu0f0g1  于 2021-07-09  发布在  Java
关注(0)|答案(0)|浏览(197)

嘿,伙计们,我用struts2解决了一个问题。基本上我有一个表单,用户可以提交填写不同的领域。我想用用户插入的属性有条件地填充正确的对象。
例如,如果用户以中间方式填写表单,我想使用的属性创建 Intermediary 对象,如果用户以实体的方式填写请求,我将使用的属性来创建 Entity 对象,ecc。。。这些对象共享相同的接口 Request .
有没有办法使用polimorphically属性来创建 Intermediary 或者 Entity 反对?
假设这是我的两个pojo:

public class Intermediary implements Request{
    private String name;
    private String surname;
    private String code;
    private String FiscalCode;
    private String address;

    ...
    /*Getters and setters */
    ....
}

public class Entity implements Request{
    private String name;
    private String surname;
    private String code;
    ....
    /*Getters and setters */
    ....
}

这可以是我在jsp页面中的表单:

<s:form action="fillRequest" id="formRichiesta" name="formRichiesta" method="post">
    <s:radio id="tipoRichiedente" name="tipoRichiedente" list="richiedenti">
    <label>Name</label><s:textfield name="name"/>
    <label>Surname</label><s:textfield name="surname"/>
    <label>code</label><s:textfield name="code"/>
    <label>Adress</label><s:textfield name="adress"/>
    <label>Fiscal Code</label><s:textfield name="fiscalCode"/>
</s:form>
<s:submit>

基本上,我的问题是,我可以发现的请求类型的用户试图填补只有在提交和观看的单选按钮状态。
有没有办法直接将属性Map到正确的对象,而不是创建一个包含所有表单属性的大对象,然后创建正确的实现?为了Map属性,我可以使用接口引用吗?
例如,想象我的行动:

public class RequestAction {
   private Request request;
   ....
}

因此,在我的jsp中,我可以使用:

<label>Name</label><s:textfield name="request.name"/>

提前谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题