Struts 1: входные данные ActionForm из любого класса действий

#java #jsp #servlets #struts #struts-1

#java #jsp #сервлеты #struts #struts-1

Вопрос:

предположим, я хочу создать форму с помощью Struts, поэтому моему struts-config понравится это:

 <form-bean name="myForm" type="com.MyForm" />


<action path="/entryyourinputs"
    type="com.MyAction" name="myForm"
    input="/myJsp.jsp">

    <forward name="success" path="/regSuccess.jsp" />
</action>
  

он покажет myJsp для назначения myForm.
мой вопрос в том, как назначить myForm в MyAction вместо myJsp?.
или каков метод назначения некоторых входных данных myForm из MyAction?

с наилучшими пожеланиями
Спасибо

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

1. Я не совсем понимаю вопрос. input Атрибутом является страница (например, JSP или Tile def), а не компонент формы. Я бы также рекомендовал поместить страницы JSP под WEB-INF , чтобы запретить прямой доступ клиента.

2. извините за мой некачественный вопрос. Я понимаю, что я просто создаю getter и setter, чтобы получить доступ к myForm через MyAction. На самом деле, я просто хочу создать какую-то форму, которая вводится с помощью параметра URL, а не с помощью графического интерфейса ввода на странице JSP (поэтому мне не нужен JSP).

Ответ №1:

В com.MyForm нам нужно создать геттеры и сеттеры для этих входных данных, как показано ниже:

 String input;
public String getInput() {return this.input;}

public void setInput(String input) {this.input = input;}
  

В MyAction, который расширяет класс struts Action, мы присваиваем значения входным данным MyForm следующим образом:

 public ActionForward execute(ActionMapping mapping, ActionForm form,HttpServletRequest request, HttpServletResponse response) {
  MyForm myForm = (MyForm) form;
// assigning values to the inputs from action
  myForm.setInput("input value");

 .....
 .....
 .....
}
  

чтобы получить значения в jsp, мы должны использовать html-тег lib:

Код Jsp выглядит как приведенный ниже код:

 <html:form action="/entryyourinputs">
   <html:text name="myForm" property="input" />
</html:form>
  

Примечание: Теги html должны находиться внутри **<html:form>** тега.

входные файлы в jsp значения, которые присваиваются в классе MyAction, автоматически присваиваются полям ввода jsp из-за контроллера.