JPA:在新的浏览器选项卡中执行showDialog()?

时间:2017-05-09 01:55:07

标签: java openxava

作为上面的标题,我希望showDialog()的行为能够在新的浏览器选项卡上显示,但我不知道是否有为此编写的Java代码。

我的代码:

public class ListSportImagesMethod2Action extends TabBaseAction {

    private int row;

    @Inject  
    private Tab tab;

    public void execute() throws Exception {

        Map sportKey = (Map) tab.getTableModel().getObjectAt(row);
        //Map sportKey =  (Map) getView().getSubview("sport").getValues();
        int sportId = ((Integer) sportKey.get("sportId")).intValue(); 
        sportKey.put("sportId", sportId);
        showDialog();  //What should it replace with?
        getView().setModelName("Sport");
        getView().setValues(sportKey);  System.out.println("data============" + getView().getValues());
        getView().findObject();
        getView().setKeyEditable(false);
        getView().setEditable(true);
        setControllers("Sport");
    }

    public int getRow() {                                                   
        return row;
    }
    public void setRow(int row) {                                          
        this.row = row;
    }

    public Tab getTab() {
        return tab;
    }
    public void setTab(Tab tab) {
        this.tab = tab;
    }

  }

PS:我知道我可以使用链接进行重定向但是使用这种方法,我无法获得父数据。我还在努力。

1 个答案:

答案 0 :(得分:0)

showDialog()显示JavaScript对话框,而不是浏览器窗口。 showDialog()不能用于在其他浏览器选项卡中显示某些东西,因为它使用IForwardAction。 IForwardAction转到新的浏览器窗口,但是如果使用IForwardAction,则必须更改操作的所有逻辑,因为您重定向到具有其自己状态的其他模块。 OpenXava文档解释了如何管理最后一种情况。