1. Uma das maneiras de alterar os atributos de ação no formulário na chamada do método dinâmico DMI foi explicada. Existem dois outros tipos. Uma é alterar o atributo do método na tag de ação no arquivo de configuração Struts.xml para especificar a execução de diferentes métodos para lidar com diferentes lógicas de negócios; O outro é usar curingas. Para alterar o atributo do método, várias ações precisam ser configuradas e a maioria dessas ações é definida da mesma forma; portanto, essa definição é bastante redundante. Portanto, o uso de curingas pode substituir várias ações processadas logicamente em uma tag de ação.
2. Demonstração: ( É semelhante ao método dinâmico anterior chamado para alterar o atributo de ação do formulário, e uma pequena modificação foi feita no arquivo de configuração Struts.xml.)
Os requisitos ainda não foram alterados. Clique em diferentes botões de envio para enviar o mesmo formulário e entregar os diferentes serviços à mesma classe de processamento de ação para processamento.
⒈ Primeiro exibir um formulário, existem dois botões de envio no formulário, mas eles representam diferentes negócios. O usuário faz login ao clicar para fazer login; O usuário faz login ao clicar para se registrar.
⒉User Login:
Registration Registro:
O código específico é o seguinte:
⑴. Faça login na página de registro (index.jsp):
<%@ página de página = "java" contentType = "text/html; charset = utf-8" pageEncoding = "utf-8"%> <! Doctype html public "-// w3c // dtd html 4.01 transitório // 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)").click(function(){/*Dynamicly modify the value of the action attribute in the form to submit the registered request to the Action class*/ $ ("#formulário"). Att ("ação", "Crie");});}); < /script> </ad Head> <body> <formulário action = "login" method = "post" id = "formulário"> name: <input type = "text" name = "name" /> <br> <br> <brB> <brbr> <brbr ". value = "login"> <input type = "submit" value = "register"> </morm> </body> </html> ⑵. Código do arquivo de configuração do Struts.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><package name="myP" extends="struts-default"><action name = "*" Method = "{1}"> <Nome do resultado = "UserLogin"> web-inf/jsp/userLogin.jsp </resultado> <resultado name = "userCreate"> web-inf/jsp/userCreate.jsp </resultado> </ction> </catury> </stuts> Análise:
1. Neste arquivo de configuração, um caractere curinga é configurado para o atributo de nome na tag de ação: "*", e o valor do atributo do método posteriormente é: {1}.
2. Significa que quando o usuário clica no botão de login na página Index.jsp, a solicitação action = "Login" no formulário: será passada para os struts. Como a configuração do curinga é realizada no Struts.xml, "*" é considerada "login", ou seja, name = "login". O valor do método subsequente é: {1} representa o primeiro "*", que é o método = "login". Portanto, as suportes encontrarão o método de login na classe Ação.Action e a chamarão. Se o usuário clicar no botão Registro, o processo será o mesmo que clicar no botão Login. Você pode escrever um pequeno exemplo para experimentá -lo.
⑶. Código de ação da classe:
Ação do pacote; import com.opensymphony.xwork2.actionupport; public classe Ação estende a ação de ação {nome da string privada; public string getName () {retorna nome;} public void setName (string name) {this.name = name;} public string Login () {System.out.println ("userLogin); Create () {System.out.println ("Registro do usuário"); retornar "UserCreate";}} Obviamente, o uso de caracteres curinga não é apenas tão simples, mas também pode incluir: "*-*", "book_*", etc. Esses caracteres curinga podem ser usados nas propriedades da tag de ação no arquivo de configuração Struts.xml, como MTHOD e atributos de classe, ou na etiqueta de resultado, como segue:
Er
Na definição de ação acima, o nome da ação é A *, para que possa corresponder a qualquer ação. Todas as solicitações são tratadas por essa ação. Como essa ação não possui um atributo de classe, a classe Actionupport é usada para lidar com isso. Como não há atributo de método, o padrão é o método Execute e retorna a string de sucesso. Além disso, o atributo de nome na tag de resultado é sucesso por padrão, portanto a ação sempre retorna diretamente o recurso JSP especificado no resultado. Portanto, o significado da definição de ação acima é: se o usuário solicitar A.Action, ele saltará para A.JSP; Se o B.Action for solicitado, ele saltará para B.JSP.
O exposto acima é a chamada de método dinâmico em suportes introduzidos pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!