我一直在开发一个系统,该系统使用<spring:message />标签库从数据库中为网站提供双语支持。我可以读/写应用程序 en/fr 属性文件。当我对新键进行硬编码时,<spring:message />它将正确显示。Ex)<spring:message code="f12345' />将显示“测试数据”。我遇到的问题是使用动态密钥。无论我如何尝试附加密钥,它都会失败。以下是我尝试过的按最终结果分组的方法。500 错误 org.apache.jasper.JasperException: (line: [104], column: [29]) [quote/equal] 符号预期<spring:message var><c:out value="${CLUObject.SpringKey_name()}" /></spring:message><spring:message var='<c:out value=\"${CLUObject.SpringKey_name()}\" />" text="wrong" /><spring:message code="<c:out value="${CLUObject.SpringKey_name()}" />" text="${CLUObject.SpringKey_name()}" /><spring:message code=<c:out value="${CLUObject.SpringKey_name()}" /> text="${CLUObject.SpringKey_name()}" /><spring:message code= <c:out value="${CLUObject.SpringKey_name()}" /> />接下来我们遇到了非服务器崩溃,这只会导致表格不显示<spring:message var='<c:out value="application.message" />' arguments="${CLUObject.SpringKey_name()}" /><spring:message var='<c:out value="${CLUObject.SpringKey_name()}" />' text="wrong" /><spring:message code="<c:out value=\"${CLUObject.SpringKey_name()}\" />" /><spring:message code="${CLUObject.SpringKey_name()}" /><spring:message code="messageCode" arguments="$value1}" /><c:set var="temp" > <c:out value="${CLUObject.SpringKey_name()}" /> </c:set><td><spring:message code="messageCode" arguments="${temp}" htmlEscape="false" /></td>我设法得到的最好的方法是简单地显示键的文本而不是值。已经可以使用<spring:message text="${CLUObject.SpringKey_name()}" />'在 applicationResources 文件中 messageCode=Test message for {0}.然后在jsp页面里面 <c:set var="temp" > <c:out value="${CLUObject.SpringKey_name()}" /> </c:set>显示“CLUVALUE.C1111 的测试消息”。
1 回答
呼唤远方
TA贡献1856条经验 获得超11个赞
我终于弄清楚了问题所在。
简短的回答:控制反转导致事情现在按照我的预期发生。我试图访问一个函数或成员,它一直在尝试使用它的 get 版本。由于我没有专门的 getmember() 来访问该变量,因此它正在做奇怪和错误的事情。
通过介绍public String getspring_name() {return spring_name;}
一下子的<spring:message code="${CLUObject.spring_name}" />
作品。
长答案:在我的代码的另一部分中,我发现了我认为是在 jsp 页面中访问的私有字符串成员。在对其他私有变量类型和函数进行了大量测试之后,我最初认为我正在访问私有成员的想法被推翻了。然而,这个特定的正在被访问。经过更多测试后,我发现当我在一个非常具体的命名约定中使用 get 函数时,这种行为是可重现的。所以在这种情况下,我有一个私有字符串 CLU_Name,并且很幸运地创建了 get 函数作为 getCLU_Name()。为 Count_Delete 命名其他 get 函数(如 getCountDelete() )不允许我重现THEM的行为,因为它们不符合命名模式。
添加回答
举报
0/150
提交
取消