передать значения Multilple в действие struts2 с одним именем параметра - PullRequest
0 голосов
/ 02 апреля 2010

Я хотел бы передать несколько параметров для одного параметра в теге действия.

Ex:

<action name="question" class="com.xxx.xxx.action"> <param name="hint">abc</param> <result name="success">Answers.jsp</result> </action>

В моем действии есть методы получения и установки переменной hint (String).

В настоящее время я могу получить значение параметра для переменной-подсказки как abc, если отправлю его.

Я хотел бы отправить несколько параметров для одной и той же переменной (подсказка)

напр .: <param name="hint">abc, xyz</param>

как можно достичь выше.

Заранее спасибо Раджу

Ответы [ 2 ]

1 голос
/ 27 апреля 2011

Я нашел лучший ответ здесь (посмотрите внизу страницы):
http://www.coderanch.com/t/494764/Struts/define-String-array-param-tag

Если по какой-то причине ссылка не работает, вот что вы делаете:

<s:param name="queryType" value="new java.lang.String[]{'PRIMARY','SECONDARY'}"/>

Если вы отправляете <s:form>, вы просто используете одно и то же ИМЯ для нескольких параметров, и Struts2 автоматически создает массив строк!

Просто не забудьте создать правильный сеттер и геттер в вашем действии, например:

    public void setQueryType(String[] queryType){
        this.queryType = queryType;
    }

Обратите внимание, что вы объявляете String [] как массив, и все!

1 голос
/ 06 апреля 2010

Я не думаю, что вы можете сделать это, кроме очевидных взломов Например, просто напишите выше в вашем отображении и в вашем действии преобразуйте строку в массив

  String[] getHintsArray() {
       return getParam("hint").split("\\s*,\\s*");
   } 
...