0

正如上面的标题,我希望 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:我知道我可以使用链接进行重定向,但是使用这种方法,我无法获取父母的数据。我还在努力。

4

1 回答 1

0

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

于 2017-05-11T11:09:27.557 回答