有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何从控制器更改JSP中元素的类?

我试图根据我所在的页面设置列表元素的类(放置在头文件中)。头文件被导入到每个页面中

这个项目使用的是Spring框架。我对Java Servlets还不熟悉,而且我习惯于在Java中这样做。以一种简单的方式。我想知道在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";
}

(精简了脚本和导入,使读取实际代码更容易。)

所以当我在主页上时,如果可能的话,哪种方式是突出显示“主页”菜单选项的最佳方式


共 (1) 个答案

  1. # 1 楼答案

    所以我意识到我们可以在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';
    };