簡體   English   中英

如何從控制器更改JSP中元素的類?

[英]How to change the class of an element in a JSP from the controller?

我試圖根據我所在的頁面設置列表元素的類(放置在頭文件中)。 頭文件被導入到每個頁面中。

該項目正在使用Spring框架。 我是Java Servlet的新手,我習慣於以簡單的方式在.NET中進行此操作。 我想知道在Java / JSP中最合適的方法是什么。

這是標題頁(header.jsp):

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>My Project</title>
</head>
<body>
    <div id="mainHeaderDiv" class="header main">
            <div class="header_resize">
                <div class="clr"></div>
                <div class="menu_nav">
                    <ul>
                        <li id="liHome"><a href="./Home.htm">Home</a></li>
                        <li id="liOrderInfo"><a href='./OrderInfo.htm'><span>Delivery Info</span></a></li>
                        <li id="liInvoice"><a href='./Invoice.htm'><span>Invoice Info</span></a></li>
                        <li id="liShipment"><a href='./Shipment.htm'><span>Sales Order Info</span></a></li>
                        <li id="liMaterial"><a href='./Material.htm'><span>Material Info</span></a></li>
                        <li id="liLogout"><a href="./logout.htm">Logout</a></li>
                    </ul>
                </div>
                <div class="clr"></div>
            </div>
        </div>
</body>
</html> 

我要將上面的標頭導入(home.jsp)的頁面之一:

<%@include file="./header.jsp" %>
<div >
        <div class="content">
            <div class="content_resize">
                <div class="clr"></div>
                <div>
                    <div class="article">
                    <c:if test="${companyInfo != null}">
                        <h2>
                            <span>Company Profile</span>
                        </h2>
                        <b> <u>Company Information</u>
                        </b>
                        <table>
                            <tr>
                                <td></td>
                            </tr>
                    </table>
                 </c:if>
                    <div class="clr"></div>
                </div>
            </div>              
        </div>          
    </div>
</div>

控制器方法:

@RequestMapping(value = "/Home", method = RequestMethod.GET)
public String home(@ModelAttribute("user") User user, Model model) {
    logger.debug("BEGIN");
    /*
    .
    .
    .
    */
    logger.debug("END");
    return "Home";
}

(刪除了腳本和導入以使閱讀實際代碼更加容易。)

因此,當我進入主頁時,如果可能的話,這是突出顯示“主頁”菜單選項的最佳方法嗎?

因此我意識到我們可以直接在JavaScript代碼中使用EL。

我傳遞了要從控制器中選擇的li的ID:

    @RequestMapping(value = "/Home", method = RequestMethod.GET)
    public String home(@ModelAttribute("user") User user, Model model) {
        logger.debug("BEGIN");
        /*
        .
        .
        .
        */
        logger.debug("END");
        model.addAttribute("currPage", "liHome");
        return "Home";
    }

並在標題頁的javascript函數中使用了它,如下所示:

window.onload = function(){
    var menuToActivate = '${currPage}';
    document.getElementById(menuToActivate).className = 'active';
};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM