2013-10-06 4 views
1

У меня есть JSP-файл с формой. Эта форма содержит выбрать раскрывающееся менюЗаполнение меню Struts 2 и перенаправление действия

<s:select label="Make a selection" headerKey="-1" headerValue="Select Option" list="stuff" name="books" /> 

Теперь, чтобы заполнить меню выбора Я создал Java-файл, чтобы сделать это. Я также создал SelectAction, который будет заполнять меню и сделал действие формы указывало на SelectAction

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

XML файл

<?xml version="1.0" encoding="UTF-8" ?> 

<!DOCTYPE struts PUBLIC 
     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
     "http://struts.apache.org/dtds/struts-2.0.dtd"> 

<struts> 
    <package name="example" namespace="/example" extends="struts-default"> 
     <action name="SelectAction" class="example.SelectAction"> 
      <result type="redirectAction"> 
       <param name="ActionName">AddSubmitAction</param> 
       <param name="namespace">/example</param> 
      </result> 
     </action> 
     <action name="AddSubmitAction" class="example.AddSubmittAction"> 
      <result type="chain"> 
       <result>/example/addOrder.jsp</result> 

      </result> 
      </action> 
    </package> 
</struts> 

то, что я пытаюсь сделать в XML сначала есть SelectAction (поэтому выберите меню заселяет), а затем перенаправить его на AddSubmitAction, который будет заботиться о форме ввода.

ОДНАКО, это не работает. Я получаю диспетчер не найдена ошибка. Является ли мой подход неправильным? Здесь неправильно используется redirectAction?

ответ

0

параметров для имени действия является чувствительным к регистру

<param name="actionName">AddSubmitAction</param> 
0

Лучший способ занесения селектов значение тега, чтобы подготовить метод. Метод подготовки всегда вызывается первым, когда вы вызываете свой класс действий.

Так что в вашем одном классе действий делают подготовить метод:

public void prepare(){ //set your list here }

Вы также можете определить подготовить метод для каждого метода определяют в своем классе действие: если ваш метод public String execute(){ }

затем ваш метод подготовки должен быть public void prepareExecute(){ И реализовать Подготовительный интерфейс в вашем классе действий.

Для дальнейшего уточнения: prepare interceptor

Смежные вопросы