Перемещение jsp страниц в Angular 7 - PullRequest
0 голосов
/ 21 апреля 2020

В настоящее время я работаю над проектом angular по обновлению существующего приложения с jsp до angular 7. Однако есть некоторые jsp страницы, которые я пока не могу полностью преобразовать в html, потому что они нуждаются поддержка предыдущих версий.

Так что мне нужно знать, как переместить их в angular. Моя идея состоит в том, чтобы скопировать jsp страницы и все css, которые он имеет, в angular компонент.

The jsp code is something like below
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<%@ include file="/WEB-INF/jsp/cwf/common/include.jsp"%>
<link
    href="<%=request.getContextPath()%>/static/css/insurance/insureServ.css"
    rel="stylesheet" type="text/css" />
<%-- START CONTAINER --%>
<div id="container">

    <%-- START HEADER --%>
    <div id="header">

        <div class="headerLogoProd">&nbsp;</div>
        <%-- ///Use  class="headerLogoPSE" or class="headerLogoProd" depending on desired logo /// --%>
        <div class="floatleft">
            Welcome,
            <c:out default="Guest" value="${name}" />
        </div>
        <div
            style="border-style: none; float: left; font-size: 1.5em; font-family: sans-serif; color: #FF800D">PRODUCTION</div>
        <div class="floatright">
            <a target="_blank"
                href="http://test.net">Contact
                Us</a> | <a href="mailto:insurance@tst.net">Feedback</a> | <a
                target="_blank" href="http://fakeurl.net">ABDHome</a>
        </div>

    <%-- START Icon Elements --%>
        <c:forEach items="${userTamRoles}" var="userTamRole">
            <c:if test="${userTamRole eq 'ATH'}">
                <div class="icon_element"
                    onMouseOver="this.className='icon_elementHover'"
                    onMouseOut="this.className='icon_element'">
                    <a target="_blank" href="fake.do"><img
                        src="static/images/ins/asdf.gif" alt=""
                        width="90" height="70" vspace="5" align="left"><br />
                        <h3>Inquiry</h3> View transactions for the
                         Transfer Service.</a>
                </div>
            </c:if>
///More html code similar to above here


</div>
<%-- END CONTAINER --%>
<script type="text/javascript">
var url = window.location.href;
var n = url.indexOf("https://pott");
if(n > -1) {
    document.getElementById("ddd").style.display = "none";
    } 
</script>

теперь текущий код, который использует spring, имеет webserivce, как показано ниже

@RequestMapping(value = "/inland", method = RequestMethod.GET)
public ModelAndView insuranceLandingpage(HttpServletRequest request) throws Exception {

    // get the user name and set it in the session, we will use this in the jsp
    String name = cuoUser.getUserFirstName() + " " + cuoUser.getUserLastName();
    request.getSession().setAttribute("name", name);

    // get entitled products /Roles from TAM
    List<String> user= this.headerUtil.getRolesFromReqHeader(request, userId);
    request.setAttribute("userTamRoles", user);
    return new ModelAndView(".abc.portal.insurance");
}

и сервлет. xml имеет определенное отображение

**

<definition name=".abc.portal.insurance"
        template="/WEB-INF/jsp/tiles/insurance/inlanding.jsp">
        <put-attribute name="body"
            value="/WEB-INF/jsp/tiles/insurance/inlanding.jsp" />

**

, теперь с angular я не могу использовать модель и представление, поэтому мне придется реорганизовать webservice для возврата объекта json. Тем не менее, как я могу отобразить страницу jsp? Я могу скопировать всю страницу jsp и вставить ее в компонент в angular. но как я могу отобразить параметры запроса? Например, как я могу сделать это <c:forEach items="${userTamRoles}" var="userTamRole"> or <c:out default="Guest" value="${name}" /> в angular компонент enet? он распознает это как jsp синтаксис?

1 Ответ

0 голосов
/ 27 апреля 2020

Я сам исправил проблему. вместо рендеринга страницы jsp на angular я просто добавил преобразователь представления в файл xml сервлета.

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.UrlBasedViewResolver">
    <property name="viewClass">
        <value>org.springframework.web.servlet.view.tiles2.TilesView</value>
    </property>
    </bean>
        <bean id="tilesConfigurer"
            class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
            <property name="definitions">
                <list>
                    <value>/WEB-INF/config/spring-tiles.xml</value>
                    <!-- <value>/WEB-INF/config/cwf/tiles-defs-cwf.xml</value> -->
                </list>
            </property>
        </bean>
...