java - 在 JSP 下拉菜单中调用常量

标签 java html jsp constants

我的 JSP 中有一个下拉菜单,我不想用文本对值进行硬编码,而是想从类中调用常量。这是我的常量类的片段,名为 master.dao.util.MasterDataConstants

//DIVISIONS FOR DROPDOWN
    public static final String DIVISION_TYPE_DROPDOWN_AUDIT_MANAGEMENT_GLOBAL_ID = "Audit Management - Global";
    public static final String DIVISION_TYPE_DROPDOWN_CHANGE_MANAGEMENT_GLOBAL_ID = "Change Management - Global";
    public static final String DIVISION_TYPE_DROPDOWN_DEA_MANAGEMENT_GLOBAL_ID = "DEA Management - Global";
    public static final String DIVISION_TYPE_DROPDOWN_EHS_MANAGEMENT_GLOBAL_ID = "EH&S Management - Global";
    public static final String DIVISION_TYPE_DROPDOWN_EVENT_MANAGEMENT_GLOBAL_ID = "Event Management - Global";

这是我的 JSP 页面:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>    
<%@ page import="java.sql.*"%> 
<%@ page import="java.io.*"%>   
<%@ page import="java.util.*"%>
<%@ page import="javax.servlet.*"%>
<%@ page import="master.dao.MasterDataDao"%>
**<%@ page import="master.dao.util.MasterDataConstants"%>**
<%@ page import="master.dto.SiteDto"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"     "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Master Data</title>
</head>
<script>
</script>
<body>

<form name="input" action="getMasterData" method="get">



        <br />
        <br />
        <h1 align='center'>Master Data File</h1>
        <br />
        <br />


        <table border="0" align='center'>
            <tr>
                <td>
                    <h2>Site Name</h2>
                </td>
                <td align='left'>
                <jsp:useBean id="masterDao" clas    s="master.dao.MasterDataDao"/>
                <select name="siteId" id="siteId">
                <option value="0">ALL</option>
                 <c:forEach items="${masterDao.allSites}" var="siteDto">
                 <option value="${siteDto.id}">${siteDto.name}</option>
                </c:forEach>
                </select></td>
            </tr>
            <tr>
                <td>
                    **<h2>Division</h2>
                </td>
                <td align='left'>
                <jsp:useBean id="masterDaoUtil"     class="master.dao.util.MasterDataConstants"/>
                <select name="divisionId" id="divisionId">
                <option value="33">${MasterDataConstants.DIVISION_TYPE_DROPDOWN_AUDIT_MANAGEMENT_GLOBAL_ID}    </option>
                <option value="31">${MasterDataConstants.DIVISION_TYPE_DROPDOWN_CHANGE_MANAGEMENT_GLOBAL_ID}    </option>
                <option value="34">${MasterDataConstants.DIVISION_TYPE_DROPDOWN_DEA_MANAGEMENT_GLOBAL_ID}</option>
                <option value="35">${MasterDataConstants.DIVISION_TYPE_DROPDOWN_EHS_MANAGEMENT_GLOBAL_ID}</option>
                <option value="23">${MasterDataConstants.DIVISION_TYPE_DROPDOWN_EVENT_MANAGEMENT_GLOBAL_ID}</option>**
                </select></td>
            </tr>

        </table>
        <br />
        <br />
        <div style="text-align: center">
            <input type="submit" value="Submit">
        </div>

    </form>
</body>
</html>

当我执行此页面时,我得到标记为“部门”的第二个下拉列表的空白值。我已经从 JSP 中复制了下面表示除法的部分:

<td>
                <h2>Division</h2>
            </td>
            <td align='left'>
            <jsp:useBean id="masterDaoUtil" class="master.dao.util.MasterDataConstants"/>
            <select name="divisionId" id="divisionId">
            <option value="33">${MasterDataConstants.DIVISION_TYPE_DROPDOWN_AUDIT_MANAGEMENT_GLOBAL_ID}</option>
            <option value="31">${MasterDataConstants.DIVISION_TYPE_DROPDOWN_CHANGE_MANAGEMENT_GLOBAL_ID}</option>
            <option value="34">${MasterDataConstants.DIVISION_TYPE_DROPDOWN_DEA_MANAGEMENT_GLOBAL_ID}</option>
            <option value="35">${MasterDataConstants.DIVISION_TYPE_DROPDOWN_EHS_MANAGEMENT_GLOBAL_ID}</option>
            <option value="23">${MasterDataConstants.DIVISION_TYPE_DROPDOWN_EVENT_MANAGEMENT_GLOBAL_ID}</option>
            </select></td>

我不确定我到底错过了什么。请在这件事上给予我帮助。提前致谢。如果我提供了足够的信息或者是否需要更多信息,请告诉我。 再次感谢

最佳答案

您是否错过了导入类(class)?

<%@ page import="master.dao.util.MasterDataConstants" %>
<小时/>

在与每个常量相对应的MasterDataConstants类中创建getter方法。

例如如下所示。对其他人也采取同样的方式。

MasterDataConstants.java

public static final String DIVISION_TYPE_DROPDOWN_AUDIT_MANAGEMENT_GLOBAL_ID = "Audit Management - Global";

public String getDIVISION_TYPE_DROPDOWN_AUDIT_MANAGEMENT_GLOBAL_ID() {
    return DIVISION_TYPE_DROPDOWN_AUDIT_MANAGEMENT_GLOBAL_ID;
}

JSP:

${masterDaoUtil.getDIVISION_TYPE_DROPDOWN_AUDIT_MANAGEMENT_GLOBAL_ID()}
<小时/>

请查看accessing constants in JSP (without scriptlet)

关于java - 在 JSP 下拉菜单中调用常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23875883/

相关文章:

java - 我们可以在同一个应用服务器上部署两个 struts2 应用程序吗?

java - 抽象类的用途/应用是什么?

html - 页脚在移动横向模式下与登录表单重叠

javascript - 当我使用history.go(-1)时,jQuery多选长度返回默认值;

html - 使用 html 图层调整 z-index

java方法没有返回正确的类型

javascript - 在所有jsp中显示下拉选择的值

java - 该方法是否线程安全并且没有死锁

java - Java 中的 xhtml 到 pdf 转换中的数学方程支持

javascript - 如何在 javascript 中使用结果集的值创建数组