выполнить действие при загрузке файла .js

#struts2

#struts2

Вопрос:

Вопрос: есть ли какой-либо способ выполнить действие с файлом welcome.jsp?

Моя проблема: мой welcome.js файл содержит строковые литералы, замененные свойствами Java, такими как:

 <button value"${com.button.ok.literal}" ...
  

И они заменяются при выполнении действия, проблема в том, что начальный не выполняет никаких действий и, следовательно, нет замены, struts.xml выглядит как:

 <action name = "createProcess" class = "com.acme.actions.Init" method="create">
            <result name ="ok">/jsp/welcome.jsp</result>
</action>
  

Я попытался выполнить пустое действие ‘loadLabels’, определив в welcom.js инициализация():

 funcion init(){
...
        <%
                String checkfirst = (String)request.getAttribute("checkfirst");
        %>
            if ("<%=checkfirst %>" != "first"){
                document.forms[0].action ="loadLabels.action?parameter=first";
                document.forms[0].submit();
            }
  

Это работает, но я на 100% уверен, что для этого есть лучшее решение.

Комментарии:

1. Просто перенаправьте с welcome jsp на action.

2. Используйте Jquery ajax для загрузки этой функции

Ответ №1:

Вы всегда можете встроить функцию javascript на свою страницу и вызывать ее всякий раз, когда это необходимо для выполнения вашего действия. Код javascript будет выглядеть примерно так

 window.location = "${pageContext.request.contextPath}/actionName";
  

Вызовите что-то вроде

 <input type="button" value="Welcome!" onclick="welcomeActionFunction">
  

Комментарии:

1. И как бы struts.xml как бы это выглядело, если бы я хотел выполнить действие только один раз в методе init()?