2011-03-14 6 views
9

Cómo usar servlets junto con Struts2?Cómo usar el servlet en Struts2

+0

¿Por qué no comprar un libro como 'Struts2 en acción'. Consulte http://www.vaannila.com/struts-2/struts-2-tutorial/struts-2-tutorial.html. Cuando tienes un problema específico, haz una pregunta aquí. – Chakra

+0

Tanto la pregunta como la respuesta me parecieron claras. – Quaternion

Respuesta

19

Asumo que quiere saber cómo utilizar un servlet en conjunción con Struts2 cuando se haya asignado a todo el filtro Struts2.

Usted puede utilizar lo siguiente en su struts.xml:

<constant name="struts.action.excludePattern" value="/YourServlet"/> 

Puede excluir múltiples patrones separándolos con una coma, por ejemplo:

<constant name="struts.action.excludePattern" value="/YourServlet,/YourOtherServlet"/> 

Más información

+0

Gracias. Funcionó :) – Lohit

+0

aquí está el enlace oficial: https://struts.apache.org/docs/static-content.html lea: "Cómo evitar que Struts maneje una solicitud" sección – thekosmix

0

La tecnología de servlets es una capa arquitectónica de nivel más bajo que Struts2. Aún más Struts2 está integrado a su proyecto como un filtro (que es parte de la tecnología de servlet).

Así a añadir un servlet más justo añadir a la inscripción web.xml:

<servlet> 

    <servlet-name>MyServlet</servlet-name> 
    <servlet-class>class.MyServlet</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 
0

Si necesita servlet mapeo varias pantallas es posible usando:

<constant name="struts.action.excludePattern" value="/Servletname1, /Servletname2" /> 

Pero en puntales, no se debe usar url servlet porque no la unidad. Se puede usar Ajax:

$.ajax({ 
      url : "nameAction.action?param="+id, 
        type : "post", 
      data : { 
       'id' : id 

      }, 
      success : function(data) { 
    //   $('#result').html(data); 
      }, 
      error : function(jqXHR, textStatus, errorThrown) { 
       $('#result').html("Error"); 
      } 
     }); 
2

Hay tres formas de resolver este problema:

  1. Añadir etiqueta constante en struts.xml sufijo

    <constant name="struts.action.excludePattern" value="/YourServlet,/YourOtherServlet"/>

  2. complemento en la configuración del servlet en web.xml

    <servlet-mapping>

    <servlet-name>Authcode</servlet-name>

    <url-pattern>/authcode.servlet</url-pattern>

    </servlet-mapping>

    Debido a que en los puntales 2, sólo se interceptará todas las peticiones terminar con .action, si esta solicitud no tienen ningún sufijo, se añadirá automáticamente eso. Cuando hacemos que nuestro servlet url-pattern tenga un sufijo, los struts 2 ya no lo interceptarán.

  3. implementar un filtro definido por el usuario

+1

No es cierto - * Porque en puntales 2, solo interceptará todo el fin de la solicitud con .action *. –

+0

cuál no es verdad? no.2? servlet puede trabajar junto con struts2, puedes probarlo. – rgc

+1

Esta parte está mal - * Porque en los puntales 2, solo interceptará todo el final de la solicitud con .action. * –

Cuestiones relacionadas