Сохранить значение TextArea из формы - PullRequest
0 голосов
/ 16 января 2012

Я новичок в Struts2 и Hibernate.Я пытаюсь сохранить значения из формы.При отправке значение текстовой области будет сохранено нулевым;

Моя форма выглядит так -

 <s:form action="saveComment">
                        <s:push value="ai">
                            <s:hidden name="id"/>
                            <table cellpadding="5px">
                                <tr><td><s:textarea name="description" rows="5" cols="60" theme="simple" />
                                    </td>
                                    <td> <s:submit type="image" src="images/sbt.gif"  >

                                        </s:submit>
                                    </td></tr>

                            </table>
                        </s:push>
                    </s:form>

, а мой метод действия выглядит так -

  public String saveComment() throws Exception {

    Map session = ActionContext.getContext().getSession();
    ExternalUser user = (ExternalUser) session.get("user");
    AIComment aiComment = new AIComment();
    aiComment.setAi(ai);
    aiComment.setPostedOn(new java.util.Date());
    aiComment.setPostedBy(user);
    aiCommentDao.saveAIComment(aiComment);
    return SUCCESS;
}

Ответы [ 2 ]

0 голосов
/ 16 января 2012

Во-первых, имя вашего действия должно быть именем вашего псевдонима. Затем вы должны указать имя метода.

Конечно, вы должны определить действие и методы в struts.xml

    <action name="Comment_*" method="{1}" class="com.yourproject.folder.Comment">
        <result name="input">/pages/page.jsp</result>
        <result name="success" type="redirectAction">nextAction</result>
    </action>   

Так что вы можете написать

<s:form action="Comment_saveComment">

А в вашем классе

public class Comment extends ActionSupport {

  public String saveComment() throws Exception {
    Map session = ActionContext.getContext().getSession();
    ExternalUser user = (ExternalUser) session.get("user");
    AIComment aiComment = new AIComment();
    aiComment.setAi(ai);
    aiComment.setPostedOn(new java.util.Date());
    aiComment.setPostedBy(user);
    aiCommentDao.saveAIComment(aiComment);
    return SUCCESS;
  }
}

Я не знаю, как вы получили значения "ai" и "user". Если вы хотите получить значения из FORM, вы должны объявить строки с такими же именами, что и для ввода формы. В вашем случае «id», «description» являются входными значениями. Если вы хотите получить значения из FORM, вы должны объявить getter и setters этих переменных в вашем классе.

В вашем случае для "id"

 private String Id;
 private String Description;

public String getId() {
    return Id;
}

public void setId(String Id) {
    this.Id = Id;
}

 ...
0 голосов
/ 16 января 2012

Struts2 имеет встроенный механизм для передачи значений формы в ваш уважаемый класс Action. Все, что вам нужно для выполнения следующих шагов:

  1. Создайте свойство в вашем классе действия с тем же именем, что и имя поля формы.и предоставьте туда геттеры и сеттеры.

Struts2 сопоставит имена свойств этих действий с именами полей, отправляемых из формы, и заполнит их для вас

, если вы используете всевам нужно выполнить следующее

public class YourAction extends ActionSupport{

  private String id;
  private String description

  getter and setters for id and description fileds

   public String saveComment() throws Exception {
      //Your Method logic goes here
   }

}

Поэтому, когда вы отправите форму, она будет содержать идентификатор и описание в качестве значений формы. Перехватчик Struts2 (в данном случае это param) увидит, что ваш класс действий имеет эти свойства, изаполните их до того, как будет запущен метод saveComment().

Надеюсь, что это даст вам некоторое понимание.

Короче говоря, все эти тяжелые работы по передаче данных / преобразованию типов выполняются перехватчиками засцена для вас.

прочитайте детали перехватчиков для лучшего понимания

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