1. Один из способов изменить атрибуты действия в форме формы в вызове динамического метода DMI был объяснен. Есть два других типа. Одним из них является изменение атрибута метода в теге действия в файле конфигурации struts.xml, чтобы указать выполнение различных методов для обработки различной бизнес -логики; Другой - использовать подстановочные знаки. Чтобы изменить атрибут метода, необходимо настроить несколько действий, и большинство из этих действий определяются одинаково, поэтому это определение довольно избыточно. Следовательно, использование подстановочных знаков может заменить несколько логически обработанных действий в одном теге действия.
2. Демонстрация: ( она аналогична предыдущему динамическому вызову метода, чтобы изменить атрибут действия формы формы, и была внесена небольшая модификация в файл конфигурации Struts.xml.)
Требования все еще не изменились. Нажмите разные кнопки «Отправить», чтобы отправить одну и ту же форму и передать различные сервисы одному и тому же классе обработки действий для обработки.
⒈ Первое отображение формы, в форме есть две кнопки отправки, но они представляют разные предприятия. Пользователь входит в систему при нажатии, чтобы войти в систему; Пользователь входит в систему при нажатии, чтобы зарегистрироваться.
⒉ пользователь логин:
Регистрация пользователя:
Конкретный код заключается в следующем:
⑴. Войдите на страницу регистрации (index.jsp):
<%@ page language = "java" contentType = "text/html; charset = utf-8" pageencoding = "utf-8"%> <! doctype html public "-// w3c // dtd html 4.01 transitional // en"-// w3c // dtd html 4.01 // en "http://www.w3.org/tr/html4/loose.dtd"><html><head><meta http-equiv =" content-type "content =" text/html; charset = utf-8 "> <script src = "js/jquery-1.7.2.js"> </script> <title> index </title> <script type = "text/javascript"> $ (function () {$ ("input: eq (3)"). Нажмите (function () {/*Динамическое изменение значения атрибута действия в форме для отправки зарегистрированного запроса в действие*/ $("#form").attr("action","Create");});});</script></head><body><form action="Login" method="post" id="form">Name: <input type="text" name="name" /><br><br>Password: <input type="password" name="password" /><br><br><input type="submit" value="Login"><input type = "Opport" value = "Register"> </form> </body> </html> ⑵. Файл конфигурации кода struts.xml
<? xml version = "1.0" Encoding = "UTF-8"?> <! Doctype Struts public "-// Apache Software Foundation // Конфигурация Struts DTD 2.3 // en" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <stach name = "*" method = "{1}"> <result name = "userlogin"> web-inf/jsp/userlogin.jsp </result> <result name = "usercreate"> web-inf/jsp/usercreate.jsp </result> </action> </package> </struts> Анализ:
1. В этом файле конфигурации символ подстановочного знака настроен для атрибута имени в теге действия: "*", а значение атрибута метода после этого: {1}.
2. Это означает, что когда пользователь нажимает кнопку «Вход» на странице index.jsp, запрос octive = "login" в форме: будет передаваться на стойки. Поскольку конфигурация подстановочного знака выполняется в struts.xml, «*» рассматривается как «логин», то есть name = "login". Последующее значение метода: {1} представляет первый "*", который является методом = "login". Таким образом, стойки найдут метод входа в класс Action.action и вызовут его. Если пользователь нажимает кнопку регистрации, то процесс такой же, как нажать кнопку «Вход». Вы можете написать небольшой пример, чтобы испытать это.
⑶. Класс кода действия:
Action Action; import com.opensymphony.xwork2.actionsupport; открытый класс Action Extends actionsupport {private String name; public String getName () {return name;} public void setName (string name) {this.name = name;} public String login () {System.out.println ("userLogin"); Create () {System.out.println ("Регистрация пользователя"); return "usercreate";}} Конечно, использование символов подстановочных знаков не так просто, но также может включать в себя: «*-*», «book_*» и т. Д. Эти символы подстановочных знаков можно использовать в свойствах тега действия в файле конфигурации Struts.xml, таких как Mthod и атрибуты класса, или в результате тега, следующим образом:
<!-Определите общий тег действия-> <name = "*"> <!-Определите тег результата, используя экспрессии-> <result>/web-inf/jsp/{1} .jsp </result> </action> В приведенном выше определении действия имя действия - *, поэтому оно может соответствовать любому действию. Все запросы обрабатываются через это действие. Поскольку это действие не имеет атрибута класса, класс ActionSupport используется для его обработки. Поскольку нет атрибута метода, по умолчанию метод выполнения и возвращает строку успеха. Более того, атрибут имени в теге результата является успешным по умолчанию, поэтому действие всегда напрямую возвращает ресурс JSP, указанный в результате. Следовательно, значение приведенного выше определения действия: если пользователь запрашивает A.Action, оно перейдет на A.JSP; Если запрашивается B.Action, он прыгнет в B.JSP.
Выше приведено динамический вызов метода в стойках, представленных вам редактором. Я надеюсь, что это будет полезно для вас. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит вам вовремя. Большое спасибо за вашу поддержку сайту wulin.com!