我希望能够将JavaScript文件上的JSP servlet用于i18n。以以下JavaScript为例:
function you_did_it_wrong() { alert("<fmt:message key="you.did.it.wrong" />"); }
我试图像这样在我的web.xml中设置JspServlet:
<servlet> <servlet-name>preprocessor</servlet-name> <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>preprocessor</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping>
但是,当我调用js文件时,它会返回,而不会被servlet处理。
博佐给出了正确的提示。但是,我想回答 具体的 问题。
当未在文件顶部声明taglib 时,给定的代码片段将 失败fmt:
fmt
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> <fmt:setLocale value="${language}" /> <fmt:setBundle basename="com.example.i18n.text" />
因此,只需确保它在JS文件中位于上方即可。
JSP servlet条目看起来不错,尽管我认为我宁愿使用以下代码:
<servlet-mapping> <servlet-name>jsp</servlet-name> <url-pattern>*.js</url-pattern> </servlet-mapping>
(jsp是servlet-nameTomcat内置的JspServlet,您可以在其中找到它/conf/web.xml)
jsp
servlet-name
JspServlet
/conf/web.xml