ArticleDto.java
public class ArticleDto {
...
private CategoryDto categoryDto;
...
}
CategoryDto.java
public class CategoryDto {
...
private Long id;
...
}
global_en.properties
...
categoryDto.id=ID
...
...
articleDto.categoryDto.id=Category
...
new_article.jsp
<s:form action="addArticle">
<s:select key="articleDto.categoryDto.id" />
<s:textfield key="articleDto.title" />
<s:submit />
</s:form>
在生成的HTML中,我得到了“articleDto.categoryDto.id”的错误标签。 我得到“ID”而不是所需的“类别”。
我似乎关键的“articleDto.categoryDto.id”它首先匹配subString“categoryDto.id”。
如果从.properties文件中删除“categoryDto.id = ID”条目,则会获得相应的值“类别”。
不应该是“articleDto.categoryDto.id”更高优先级而不是“categoryDto.id”?
答案 0 :(得分:0)
我解决了在global_en.properties中所有条目的开头添加“bundle”的问题:
...
bundle.categoryDto.id=ID
...
...
bundle.articleDto.categoryDto.id=Category
...
而不是形式:
<s:select name="bundle.articleDto.categoryDto.id" />
解决了,但仍然不知道为什么struts2无法识别以前的解决方案。 问题出在getText()中。它在包含操作变量的值堆栈中搜索。在行动中我有一个文章Dto,有吸气剂和二传手。 如果我取下吸气剂,一切都很顺利。这个吸气器似乎发生了一些奇怪的冲突。