2013-02-27 3 views
2

Вот мой struts.xmlрезультат не определен для действия <class> и результат ввода

<package name="ajax" extends="json-default" > 
    <action name="loadcity" method="loadcity" class="roseindia.action.user.RegisterUser" > 
     <result type="json" /> 
    </action> 
</package> 

Когда я звоню loadcity.action Я получаю следующее сообщение об ошибке

No result defined for action roseindia.action.user.RegisterUser and result input 

Вот мой метод действия:

public String loadcity() 
{ 
    country=request.getParameter("country"); 

    cityList= dao.loadcity(country); 
    return ActionSupport.SUCCESS; 
} 

ответ

0

Ваш XML узел result должен иметь атрибут name со значением "input", так как это то, что вы возвращаете.

Так что ваш struts.xml должен выглядеть:

<package name="ajax" extends="json-default" > 
    <action name="loadcity" method="loadcity" class="roseindia.action.user.RegisterUser" > 
     <result name="input" type="json" /> 
    </action> 
</package> 

отредактирован:

Другая ошибка может быть:

You are getting a validation or type conversion exception, so it looks for the "input" result.

Fix the validation/type conversion exception.

Источник: struts 2 json plugin throws error no result type is defined

+0

Для JSON плагин не требуется ..... – user1773207

+0

вы можете попробовать назвать этот результат на «вход»? –

+0

между прочим ... @ user1773207 имеет ли этот вызов какие-либо проверки? возможно, в какой-то момент это не удается ... –

1

validation перехватчик может р eturn a INPUT результат, если вы делаете запрос POST. Обычно вы делаете с добавлением результата "input" в конфигурацию действий, но если вы возвращаете результат "json", вы можете исключить это действие из проверки или проверить тип результата или код состояния, возвращаемый вызывающему лицу для обработки содержимого.

+0

Метод определен в конфигурации; нет необходимости указывать его вручную. –

2

Прежде всего ваш файл srtuts.xml не полностью определяет тип результата, который должен быть отображен при ответе на выполнение вашего действия. Тег result играет роль представления в структуре Struts2 MVC. Действие отвечает за выполнение бизнес-логики. Следующим шагом после выполнения бизнес-логики является отображение представления с использованием тега. Здесь вы можете сделать одну вещь

<package name="ajax" extends="json-default" > 
    <action name="loadcity" method="loadcity" class="roseindia.action.user.RegisterUser" > 
     <result name="input" type="json" /> 
    </action> 
</package>