我正在编写一个使用数据库的Struts2应用程序,该数据库的列由Y
或N
组成。我需要将列显示为Yes
或No
。所以,我在动作类中有seqIdMap
:
private HashMap<String, String> seqIdMap;
public ReviewQuestionAction(){
seqIdMap = new HashMap<String, String>();
seqIdMap.put("Y", " Yes ");
seqIdMap.put("N", " No ");
}
我使用以下Struts2代码生成无线电标签,它工作正常:
<div class="row">
<label for="yesOrNo" class="pull-right">
<s:text name="yesOrNo"></s:text>
</label>
</div>
<div>
<s:radio name="indicatiorFlag" id="yesOrNo" list="seqIdMap" />
</div>
我的问题是,我需要将indicatiorFlag
显示为Yes
或No
而不是Y
或N
,这是我从数据库中获得的。我在几个网站上尝试了以下建议,但它不起作用:
<s:iterator value="questionInfoList">
<s:url var="link" action="reviewQuestion" method="getQuestionInfo">
<s:param name="seqId">
<s:property value="seqId"/>
</s:param>
</s:url>
<s:a href="%{link}">
<s:property value = "seqId"/></s:a>
<s:property value = "%{seqIdMap.indicatiorFlag}"/>
如果我将Y
替换为N
,我可以显示%{seqIdMap.indicatiorFlag}
或indicatiorFlag
。但我还没有想出如何在indicatiorFlag
中使用key
到seqIdMap
。我尝试了几种不同的方式,包括%{seqIdMap['indicatiorFlag']}
和
<s:set name="newMap" var = "seqIdMap">
在迭代器之外,然后在其中%{#newMap[indicatiorFlag]}
。任何帮助,将不胜感激。
P.S。我意识到indicatiorFlag
应该是indicatorFlag
,但我继承了这个名字。
答案 0 :(得分:1)
我通过以下代码将var Member = mongoose.Schema({
webaccount : {
email : String,
password : String,
},
facebook : {
id : String,
token : String,
email : String,
name : String
}
});
和Y
转换为N
和Yes
:
No
此处,<s:iterator value="myTestList" var="mytestBean">
<s:property value="%{seqIdMap[#mytestBean.name]}" />
</s:iterator>
保留了mytestBean.name
和Y
的值。
答案 1 :(得分:0)
我以为我曾尝试过以下代码并且它没有用,但在查看了James的解决方案之后我尝试了它并且它也有效。
<s:property value = "%{seqIdMap[indicatiorFlag]}"/>