[英]JSP code to Struts or JSTL tag
嗨,
我正在用jsp代碼做一些有趣的事情,我需要使用Struts或JSTL標簽來做,任何機構都可以提出相關建議,請分享。
以下是我的JSP代碼
<%
Object category = request.getAttribute("categoryDetails");
Hashtable<String, Hashtable<String, Integer>> cat = (Hashtable<String, Hashtable<String, Integer>>) category;
//out.print(cat.entrySet());
Set<String> functions = cat.keySet();
for(String fun : functions){
out.print("-----------");
out.print(fun);
out.print("-----------");
Hashtable<String, Integer> obj = cat.get(fun);
Vector<String> subFunction = new Vector<String>(obj.keySet());
Collections.sort(subFunction);
for(String str : subFunction){
out.print("#"+str+"-"+obj.get(str));
}
}
%>
提前致謝。
我不會使用任何一個,而是要查看所涉及的邏輯,而寧願編寫一個自定義的jsp標記來實現此目的。 JSTL / Struts在此方面同樣出色/可怕。
您可以使用自定義標簽或創建如下的臨時視圖結構:
public class FunctionView {
String functionName;
List<SubFunctionView> subfunctions;
public FunctionView(String functionName, List<SubFunctionView> subfunctions) {
this.functionName = functionName;
this.subfunctions = subfunctions;
}
public String getFunctionName() {
return functionName;
}
public void setFunctionName(String functionName) {
this.functionName = functionName;
}
public List<SubFunctionView> getSubfunctions() {
return subfunctions;
}
public void setSubfunctions(List<SubFunctionView> subfunctions) {
this.subfunctions = subfunctions;
}
}
public class SubFunctionView {
String subFunctionName;
Integer value;
public SubFunctionView(String subFunctionName, Integer value) {
this.subFunctionName = subFunctionName;
this.value = value;
}
public String getSubFunctionName() {
return subFunctionName;
}
public void setSubFunctionName(String subFunctionName) {
this.subFunctionName = subFunctionName;
}
public Integer getValue() {
return value;
}
public void setValue(Integer value) {
this.value = value;
}
}
然后,您只需在控制器上發布一個名為List getFunctionsView()的方法,並使用一個簡單的嵌套jstl foreach循環即可。
編輯:不得不略作修改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.