作为上面的标题,我希望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:我知道我可以使用链接进行重定向但是使用这种方法,我无法获得父数据。我还在努力。
答案 0 :(得分:0)
showDialog()显示JavaScript对话框,而不是浏览器窗口。 showDialog()不能用于在其他浏览器选项卡中显示某些东西,因为它使用IForwardAction。 IForwardAction转到新的浏览器窗口,但是如果使用IForwardAction,则必须更改操作的所有逻辑,因为您重定向到具有其自己状态的其他模块。 OpenXava文档解释了如何管理最后一种情况。