gpt4 book ai didi

java - JSP 资源包

转载 作者:行者123 更新时间:2023-11-28 22:05:01 24 4
gpt4 key购买 nike

我从位于网站根目录的 JSP 文件加载和使用 properties 文件没有问题(使用 ResourceBundle class) 但是当我尝试从位于目录中的 JSP 加载相同的 properties 文件时,它失败了,并说找不到资源!

位于目录中的页面代码

<%@page import="org.apache.log4j.Logger"%>
<%@page import="com.persiangulfcup.utility.LogUtils"%>
<%@page import="java.util.ResourceBundle"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
Logger logger = LogUtils.getLogger("page/contact");
ResourceBundle lbls = null;
ResourceBundle msgs = null;
try {
lbls = ResourceBundle.getBundle("labels");
msgs = ResourceBundle.getBundle("messages");
} catch (Exception ex) {
logger.fatal(ex);
}
%>
<div class="form">
<div style="text-align: left; font: normal bold 14px arial; cursor: pointer" onclick="contactBox.hide();">X</div>
<div style="padding-bottom: 10px;font-size: 14px; text-align: center"><%=msgs.getString("contactHeader")%></div>
<form id="frmContact" onsubmit="try {sendContact();} catch (e) {console.log(e)} return false;">
<table class="form">
<tr>
<td class="caption"><%=lbls.getString("name")%>: </td>
<td class="data">
<input id="txtName" type="text" name="txtName"/>
</td>
</tr>
<tr>
<td class="caption"><%=lbls.getString("email")%>: </td>
<td class="data">
<input id="txtEmail" type="text" name="txtEmail"/>
</td>
</tr>
<tr>
<td class="caption"><%=lbls.getString("subject")%>: </td>
<td class="data">
<input id="txtSubject" type="text" name="txtSubject"/>
</td>
</tr>
<tr>
<td class="caption"><%=lbls.getString("message")%>: </td>
<td class="data">
<textarea id="txtMessage" name="txtMessage"></textarea>
</td>
</tr>
<tr>
<td class="button" colspan="2"><input type="submit" value="<%=lbls.getString("send")%>"/></td>
</tr>
<tr>
<td style="text-align: center" colspan="2" id="brdContact"></td>
</tr>
</table>
</form>
</div>

最佳答案

这是因为您没有遵守黄金法则:不要在默认包中放置任何东西。资源包作为类从类路径加载。它有一个完全限定的名称,必须用于加载它。并且不可能从不在默认包中的类中使用默认包中的类。

因此,将您的资源包放入适当的包中(例如:com.persiangulfcup.foo.bar),然后像这样加载它们:ResourceBundle.getBundle("com.persiangulfcup. foo.bar.labels").

也就是说,在 JSP 中使用 scriptlet 是一种不好的做法。你真的应该使用 the JSTL ,它有一个 fmt 库,允许使用资源包、格式化消息等。

关于java - JSP 资源包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6555395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com