Um processamento enviado ao servidor geralmente pode ser dividido em dois estágios. O primeiro estágio consulta o status do servidor (consultas ou atualiza o banco de dados) e o segundo estágio seleciona uma página de resultado adequada e o retorna ao usuário (o conteúdo do resultado a ser discutido aqui).
O STRUTS2 fornece suporte para diferentes tipos de resultados de retorno, os comuns incluem JSP, Freemarker, Velocity, etc.
Os diferentes tipos de resultados de retorno suportados pelo STRUTS2 são:
| nome | ilustrar |
|---|---|
| Resultados da cadeia | Usado para lidar com correntes de ação |
| Resultados do despachante | Usado para virar as páginas, geralmente manuseie o JSP |
| Resultados do Freemarker | Lidar com modelos Freemarker |
| Resultados de Httpheader | Usado para controlar o comportamento especial HTTP |
| Redirecionar resultado | Redirecionar para um URL |
| Redirecionar os resultados da ação | Redirecionar para uma ação |
| Resultados do fluxo | Envie o objeto InputSReam para o navegador, geralmente usado para processar downloads de arquivos |
| Resultados da velocidade | Modelos de velocidade da alça |
| Resultados XLS | Processar modelos XML/XLST |
| Resultado de texto simples | Exibir conteúdo original do arquivo, como o código -fonte do arquivo |
| S2PLUGINS: resultado de telhas | Use em combinação com ladrilhos |
Além disso, o tipo de resultado de terceiros também inclui o plug-in JasPerReports, que é usado especialmente para processar a saída do relatório do tipo JasperReport.
Já existem definições para todos os tipos de resultado no arquivo struts-default.xml:
<Telt-types> <names-type = "cadeia" class = "com.opensymphony.xwork2.actionChainResult"/> <resultado-type name = "despacher" class = "org.apache.struts2.dispatcher.servletdispatcherResult" default = "true"/> <ty-ty-typpe name = "freemarker" class = "org.apache.struts2.views.freemarker.freemarkerResult"/> <resultado-type name = "httpheader" class = "org.apache.structs2.dispatcher.httpheaderRESULT"/> <resultado-typpe name = "redirect" class = "org.apache.structs2.dispatcher.servletRetReectsult"/> <result-type name = "redirectaction" class = "org.apache.structs2.dispatcher.servletActionRetresult"/Result-type name = "stream" class = "org.apache.structs2.dispatcher.streamResult"/> <result-type name = "velocity" class = "org.apache.struts2.dispatcher.velocityResult"/> <Result-type name = "xst" class = "oupache.struts.Struts"/> <Result-Tepe = "xst" class = "oupache.struts.Struts"/> <resultado name = "plainText" class = "org.apache.struts2.dispatcher.plainntextResult" /> <!- Formulário de nome depreciado agendado para remoção no Struts 2.1.0. As versões do camelcase são preferidas. Consulte WW-1707-> <Result-Type name = "Redirect-Ação" class = "org.apache.structs2.dispatcher.servletactionRedirectResult"/> <Result-type name = "PlainText" Class = "Org.apache.struts2.dispather.PlaintexTresult"/>> <struts2.dispather.PlaintexTresult "/>> <struts2.dispather.PlaintexTresult"/>>
A partir do código acima, podemos ver que, quando o tipo de resultado não é especificado, ele é usado.
Definir um valor de resultado,
<resultado name = "succcess" type = "despachante"> <param name = "location">/obrigado
Como o valor padrão do tipo é o despachante, não há necessidade de defini -lo aqui. Além disso, o valor padrão do nome é o sucesso; portanto, não há necessidade de defini -lo aqui.
O código acima pode ser abreviado como:
<sicel> <param name = "location">/obrigado
Além disso, os parâmetros de localização também podem ser desinstalados diretamente da tag de resultado, portanto, a maneira mais simples de escrever o código acima é:
<Illt> /thankyou.jsp </silt>
Também podemos definir vários resultados diferentes
<ação name = "hello"> <resultado> /hello/result.jsp </resultado> <resultado name = "error">/hello/error.jsp </resultado> <resultado name = "input">/hello/input.jsp </resultado> </action>
O significado do código acima é que a ação com o nome Hello tem três devoluções e todos são tipos de despachantes (tipo padrão). Os nomes desses três valores de retorno são sucesso (valor padrão), erro e entrada. Os caminhos de página correspondentes são /hello/result.jsp, /hello/error.jsp e /hello/input.jsp.
Às vezes, precisamos de um resultado global definido. Neste momento, podemos definir um resultado global dentro do pacote, por exemplo:
<Blobal-Results> <resultado name = "error">/error.jsp </resultado> <resultado name = "invalid.token">/error.jsp </resultado> <resultado name = "login" type = "redirect-action"> logon!
Retornar dinamicamente os resultados
Às vezes, sabemos apenas qual resultado retornar quando a ação executa o BI completo. No momento, podemos definir uma propriedade dentro da ação, usada para armazenar o valor do resultado após a ação executar o BI completo, por exemplo:
String privada NextAction; public String getNextAction () {return NextAction;} No arquivo de configuração strutx.xml, podemos usar $ {NextAction} para fazer referência às propriedades da ação e retornar dinamicamente o resultado através do conteúdo representado por $ {NextAction}, por exemplo:
<ação name = "fragment"> <name de resultado = "next" type = "redirect-action"> $ {nextAction} </resultado> </action> Quando o método executivo da ação acima retorna a seguir, também é necessário determinar qual ação está localizada com base nas propriedades da NextAction.
Se você deseja encaminhar para outra ação, pode definir o tipo = cadeia e o resultado não será adicionado ao shtml.
O exposto acima é toda a explicação detalhada dos parâmetros de resultado STRUTS2. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.