Динамически вставляйте html-элементы в шаблон jsp-файла - PullRequest
1 голос
/ 21 ноября 2010

Я хочу динамически вставлять некоторые элементы html в шаблон файла jsp.

Я знаю, что могу сделать это, используя фрагмент кода javascript, но мне интересно, есть ли лучшие способы?

Вот мой пример:

myTemplate.jsp

......
<div id="content"></div>
.....

myPage.jsp

<jsp:include page="myTemplate.jsp"></jsp:include>

//This the line which I'm searching if there is.
setContent into the div with id "content"

Ответы [ 2 ]

3 голосов
/ 21 ноября 2010

Это невозможно с JSP. Рассмотрите возможность перехода с JSP на Facelets . Это технология представления на основе XHTML. Тогда вы сможете достичь желаемой функциональности с <ui:insert> и <ui:define>.

/WEB-INF/web.xml

<servlet>
    <servlet-name>facesServlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>facesServlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
</servlet-mapping>

/WEB-INF/template.xhtml

<!DOCTYPE html>
<html lang="en" xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
    <head>
        <title><ui:insert name="title" /></title>
    </head>
    <body>
        <ui:insert name="content" />
    </body>
</html>

/page.xhtml

<ui:composition template="/WEB-INF/template.xhtml" xmlns:ui="http://xmlns.jcp.org/jsf/facelets">
    <ui:define name="title">Page title</ui:define>
    <ui:define name="content">
        <div id="content"></div>
    </ui:define>
</ui:composition>

Вызов /page.xhtml в веб-браузере закончится как

<!DOCTYPE html>
<html lang="en">    
    <head>
        <title>Page title</title>
    </head>
    <body>
        <div id="content"></div>
    </body>
</html>

Еще одним преимуществом Facelets является встроенная поддержка JSF , компонентной инфраструктуры MVC.

1 голос
/ 21 ноября 2010

Хорошо, какую бы инфраструктуру вы не использовали, она будет переведена в некоторый компонент браузера [javascript / flash / applet] и в какой-либо компонент на стороне сервера [Servlet / Filter], если вы хотите динамически изменять содержимое, без обновления страница . С этой точки зрения простая комбинация JavaScript / сервлетов хороша. Но для удобства управления используйте любую инфраструктуру Java, которая поддерживает Ajax. JSF2, JSF с RichFaces, GWT и т. Д. И т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...