Cómo pasar Object utilizando jsp: incluye la etiqueta param en otra jsp

Estoy tratando de enviar objetos DTO de un jsp a otro jsp utilizando jsp: etiqueta de inclusión. Pero siempre lo trata como String. No puedo usar DTO en mi archivo jsp incluido.

Aquí hay un código …

     

archivo attributeSubFeatureRemove.jsp ..

             

Aquí estoy tratando de obtener el valor de atributo de param, siempre está enviando valor de tipo de cadena. ¿Hay alguna forma de enviar Object (DTO) en el archivo attributeSubFeatureRemove jsp? Por favor ayuda.

No creo que realmente quieras archivos de tags aquí. Eso es excesivo y demasiado confuso para lo que quieres lograr. Necesita pasar tiempo comprendiendo el “scope”. En lugar de archivos de tags, yo:

1) Cambie su atributo para que esté en el ámbito de “solicitud” en lugar del scope “página” predeterminado al cambiar esta línea:

  

a esto

   

Eso hará que “attribute” sea una variable “requestScope” que se puede usar en otros archivos JSP que son c: importados. (Nota: para cada uno no es compatible con el atributo del scope, use c: set para ubicarlo dentro de cada iteración).

2) Cambia tu jsp original: incluye a c: importar. Así que cámbialo de:

    

a esto

  

Tenga en cuenta que no intentamos explícitamente pasar el atributo como parámetro, porque ya lo hemos puesto a disposición de todas las páginas c: importadas en el “requestScope”.

3) Modifique su c: JSP importada para hacer referencia al atributo utilizando requestScope cambiando esto:

   

a esto

  

Aquí ya no necesitamos el conjunto c: porque ya tiene el atributo disponible. Solo debemos asegurarnos de buscar en el requestScope para esa variable, en lugar de en el pageScope predeterminado o como un parámetro (porque ya no lo estamos pasando como parámetro).

Esta técnica será mucho más fácil de administrar.

Así que he resuelto el problema usando un archivo de etiqueta. Ya no estoy usando jsp: include tag porque siempre enviará String Type.

Aquí hay una solución …

 <%@ taglib prefix="cms2" tagdir="/WEB-INF/tags/spine/surgery"%>    

archivo attributeSubFeatureRemove.tag

 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%> <%@ attribute name="attribute" required="true" type="com.medtronic.b2b.core.dto.HCCB2BClassificationAttributeDTO" %> <%@ taglib prefix="surgery" tagdir="/WEB-INF/tags/spine/surgery"%>          

Aquí estoy dando Tipo de atributo para acceder a Objeto en el archivo de etiqueta. Y funciona bien

No puede pasar directamente un Objeto usando jsp: include param tag en otro jsp.

Sin embargo, puede pasar el NOMBRE de ese atributo (como una cadena) usando jsp: include param tag en otro jsp, luego en el jsp incluido, puede obtener ese atributo por su nombre de requestScope.

en tu JSP principal:

      

en attributeSubFeatureRemove.jsp:

 object's name = ${param.objName} object itself = ${requestScope[param.objName]} Just for an easier access:  obj=${obj}