Как открыть URL-адрес в новой вкладке из URL-адреса, полученного из БД? - PullRequest
0 голосов
/ 01 февраля 2019

Итак, у меня есть URL, который я получаю из базы данных внутри моего 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-адрес клиентской стороне, чтобы открыть URL-адрес в новой вкладке или окне браузера.Как я могу это сделать?Нужно ли мне установить новую страницу JSP, а затем установить URL на этой странице JSP или ..?У меня есть отдельный js-файл для всех js-функций, поэтому я не совсем понимаю, как отправить его в js, а затем связать js-файл, чтобы jsp знал об этой функции.

РЕДАКТИРОВАТЬ: Вот как я вызываю вышеупомянутый метод.

У текущего 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>

^ Что идет после кнопки?

1 Ответ

0 голосов
/ 01 февраля 2019

Вы не можете сделать это на стороне сервера.Что вы можете сделать, это вернуть его как часть вашей исходной страницы (через JSP) как часть некоторого фрагмента Javascript (может быть, просто <script> var newTabUrl = <your url> </script>)

И затем вы можете использовать window.open(), если найдете newTabUrl установить какое-либо значение.

Открыть URL-адрес в новой вкладке (а не в новом окне), используя JavaScript

ОБНОВЛЕНИЕ

Ну, я сомневаюсь, ${url} - это даже допустимая JSP.Вы уверены, что не используете какой-либо шаблонизатор?Если бы это был чисто классический JSP, это было бы что-то вроде <% out.println(getUrl()); %>

Имя параметра javascript, который вы использовали для window.open(), также неверно.

<script> var newTabUrl = <% out.println(getUrl()); %>; window.open(newTabUrl); </script>

Я не знаю, что вы делаете или откуда приходит getUrl(), так что исправьте это в соответствии с вашими потребностями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...