如何在backingbean方法中访问两个不同的java实体作为参数

如何在backingbean方法中访问两个不同的java实体作为参数,java,Java,Mojarra 2.1.5/Java 我有两个实体:即 class Primary { String name; String age } class Second { String dept; String hour } ... 在我的managed bean中我开发了一个函数来生成关于前端素面单选按钮(主按钮或第二按钮)的PDF 如果我在单选按钮中选择主选项,managedbean方法将激发generatePDF(),在generatePDF中我有: Primary pr = new Pr

Mojarra 2.1.5/Java

我有两个实体:即

class Primary { String name; String age }
class Second { String dept; String hour }
...
在我的managed bean中我开发了一个函数来生成关于前端素面单选按钮(主按钮或第二按钮)的PDF

如果我在单选按钮中选择主选项,managedbean方法将激发generatePDF(),在generatePDF中我有:

Primary pr = new Primary();
pr.name = xxxxx;
pr.age = yyyyy;
...
...
但是如何才能为两个实体(主实体和第二实体)重新利用相同的方法generatePDF?我需要访问有关我的无线电选择的两个实体属性


我需要动态地实例化实体(或者一次实例化一个主实体或者一秒钟实例化一个实体)

这样做怎么样

interface Pdfeable{  String writeToPDF();}
class Primary implements Pdfeable { String name; String age }
class Second impleaments Pdfeable { String dept; String hour }
只需使用要将数据发送到PDF的语句重写即可

class Primary implements Pdfeable {
   String name; String age;
   public String writeToPDF(){
      return getName() +  "" + getAge();
   }
}

并使用接口定义而非具体类编写代码。

假设根据您的问题,您需要根据单选按钮选择一次实例化一个类,我建议您为单选按钮创建一个valueChangeListener。我已经硬编码了radio selectItem的值,您可以通过bean bin或其他任何方式使用加密或硬编码

<h:selectOneRadio value="#{myBean.myRadioValue}" ... onclick="this.form.submit();" valueChangeListener="#{myBean.generatePDF}">
   <f:selectItem itemValue="Radio1" itemLabel="Primary-radio" />
    <f:selectItem itemValue="Radio2" itemLabel="Secondary-radio" />
   </h:selectOneRadio>
。。。


}

你的意思是,你想在同一个方法中根据你的单选选择一次实例化一个类?在单击将要发生的事情时,是否还有任何提交按钮?或者只是选择你想要的单选按钮。你想用JSF/PrimeFaces标记这个问题吗?我在pdf生成器中有很多实体字段要使用。不仅仅是两个请考虑使用反射来遍历所有字段,仍然使用接口。检查这是用反射。TyNO方法。在PDF中我要生成很多字段。这样会重复很多代码。首先请告诉我们这是在单击任何提交或选择之后的吗?也请详细说明您的任务。如果有多个字段,那么您必须使用类似于从视图到bean和bean中按id获取radioButton值的方法,根据您必须实例化的id选择,例如:Clazz c=Class.forName(ClassName);
public void generatePDF(ValueChangeEvent evt) {
    if(getMyRadioValue.equals(Radio1)){
     Primary pr = new Primary();
pr.name = xxxxx;
pr.age = yyyyy;
}
else if(getMyRadioValue.equals(Radio2)){
 Secondary s = new Secondary();
s.dept = xxx;
s.hour = yyyy;}