![]() |
mvnForum » Listar todos los foros » » Foro: General OpenCms 9 » » » Tema: Editar propiedades desde JSP |
|
Imprimir en 24-sep-2023 5:35:38 | Ver todos los mensajes del tema en una sola página |
Publicado por andresmb en 30-jun-2016 11:24:39 |
Editar propiedades desde JSP Hola a todos, Os pongo en contexto: estoy creando una página padre(productos) con un footer que carga las imágenes de portada de sus hijas (producto1, producto2,...). Para hacerlo, he creado una propiedad "Imagen" a la que le asigno el valor desde la hija con la URL de la imagen y desde la página padre, hago <c:forEach items="${nav.items}" var="elem" varStatus="status"> <a href="<cms:link>${elem.resourceName}</cms:link>" style="background-image: url('<cms:property name="Imagen" file="${elem.resourceName}index.html"/>');"> <div class="vcenter"> <span>${elem.getProperty('NavText')}</span> </div> </a> </c:forEach> La pregunta es, ¿hay alguna forma de editar el valor de la propiedad del html desde el formatter "portada.jsp", en luegar de tener que hacerlo manualmente? Gracias de antemano, Andrés |
Publicado por sergio en 30-jun-2016 12:41:45 |
Re: Editar propiedades desde JSP Para editar una propiedad lo puedes hacer desde la api de OpenCms usando la clase: cmsObject. Tienes un método que es writePropertyObject(...) que te permite editar, le dices la ruta, la propiedad y el valor y listo. Ten en cuenta que tienes que hacerlo con un cmsObject con permisos y en el proyecto offline. ---------------------------------------- --------------------------------------------------- Sergio Rapos Vargas. Administrador de OpenCmsHispano. sergio.raposo@opencmshispano.es |
Publicado por andresmb en 07-jul-2016 12:04:38 |
Re: Editar propiedades desde JSP Gracias por la respuesta Sergio He estado haciendo pruebas y leyendo documentación y he llegado a esto: <% CmsJspActionElement cms = new CmsJspActionElement(pageContext, request, response); CmsObject cmso = cms.getCmsObject(); CmsProperty property = cmso.readPropertyObject("/opencms/opencms/sites/default/.content/gg-cover/gg-cover-00003.xml", "NavImage", false); cmso.lockResource("/opencms/opencms/sites/default/.content/gg-cover/"); property.setValue("aquí_vendría_la_ruta", CmsProperty.TYPE_INDIVIDUAL); cmso.writePropertyObject("/opencms/opencms/sites/default/.content/gg-cover/", property); cmso.unlockResource("/opencms/opencms/sites/default/.content/gg-cover/"); %> Pero me dice que: Container-page element "/.content/gg-cover/gg-cover-00003.xml" could not be rendered with formatter "/system/modules/aero.groundforce.site/formatters/gg-cover-formatter.jsp". javax.servlet.ServletException: org.opencms.file.CmsVfsResourceNotFoundException: Error reading resource from path "/opencms/opencms/sites/default/.content/gg-cover/gg-cover-00003.xml".Stack trace Entiendo que el problema está en que no encuentra la ruta, y he pensado en pasarle la variable "content" del formatter, pero no veo cómo ¿Alguna idea? Gracias de antemano, Andrés |