Предположим, я настраиваю проверку «для каждого метода» в своем действии, используя структуру проверки Struts2 (в моем примере с аннотациями, но и с xml это то же самое). Предположим, у меня есть три общедоступных открытых метода в моем действии:
public class MyAction extends ActionSupport {
@Override
public String execute() throws Exception {
//some code here...
}
@Validations(
customValidators = {@CustomValidator(type="myCostomValidator", fieldName="myFieldName", shortCircuit=true, message="")}
)
public String info() {
//some code here...
}
@Validations(
customValidators = {@CustomValidator(type="myCostomValidator", fieldName="anotherFieldName", shortCircuit=true, message="")},
visitorFields = {@VisitorFieldValidator(context="update_context", fieldName="anObjectField", message="", shortCircuit=true)}
)
public String update() {
//some code here...
}
//getters, setters and other...
}
Теперь каждый из трех методов может быть вызван и имеет различную проверку. Если проверка не пройдена, платформа устанавливает результат «ввод», который необходимо настроить в файле struts.xml:
<action name="myAction_*" method="{1}" class="com.test.gui.action.test.MyAction">
<result name="success">result1.jsp</result>
<result name="edit">result2.jsp</result>
<result name="input">result3.jsp</result>
</action>
Как я могу иметь разные результаты «ввода» для каждого метода действия? Например, я хотел бы открыть одну страницу, если проверка не пройдена для метода info(), и другую страницу, если проверка не пройдена для метода update(). Спасибо.
"input"
, но я не уверен, что это будет правильно оценено, но я все же попробую, чтобы увидеть что случается. - person Dave Newton   schedule 30.03.2015