所以,我有一个网址,我从我的Java代码中的数据库中获取。
public ActionForward executeAjaxShowTab(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) {
String url = getUrl(); //returns something like https://foo.bar
request.setAttribute("form", url);
return mapping.findForward(ForwardConstants.FORWARD_TAB); //goes back to alert tab on the page, not a modal dialog
}
我感到困惑的是如何通过以上网址到客户端在新标签或浏览器窗口中打开URL。我怎样才能做到这一点?我需要建立一个新的jsp页面,然后设置URL中的JSP页面或..?我对所有的JS功能独立的js文件,所以我就如何将其发送到JS迷惑,然后让JSP知道该功能链接js文件。
编辑:这就是我如何我打电话上述方法。
当前JSP(这是一个模态对话框)有一个按钮:
<button onclick="launchForm()"> </button>
JS:
launchForm= function() { var params=""; yuiPost("foo.do?subaction=ajaxShowTab", "content", params);}
所以,如果我需要把它放在原来的JSP:
<script> var newTabUrl =${url}; window.open(newTabUrl); </script>
^按钮之后去?
你不能做到这一点的服务器端。你可以做的是一些JavaScript代码片段的一部分返回它作为您的原始页面(JSP通过)的一部分(也许只是<script> var newTabUrl = <your url> </script>
)
然后,如果你发现window.open()
设置为某个值,你可以使用newTabUrl
。
Open a URL in a new tab (and not a new window) using JavaScript
UPDATE
好吧,我怀疑${url}
甚至是有效的JSP。你确定你是不是使用一些模板引擎?如果是纯粹的经典JSP它会是这样的<% out.println(getUrl()); %>
您用于window.open()
的JavaScript参数的名称也是错误的。
<script> var newTabUrl = <% out.println(getUrl()); %>; window.open(newTabUrl); </script>
我不知道你在做什么,或从那里getUrl()
是从哪里来的,所以这个根据自己的需要修复。