Java Struts或JSTL标记的JSP代码
嗨 我正在做jsp代码中的蠢事,我需要使用Struts或JSTL标记来完成它。任何人都可以有相关的想法,请分享 下面是我的JSP代码Java Struts或JSTL标记的JSP代码,java,jsp,struts,Java,Jsp,Struts,嗨 我正在做jsp代码中的蠢事,我需要使用Struts或JSTL标记来完成它。任何人都可以有相关的想法,请分享 下面是我的JSP代码 <% Object category = request.getAttribute("categoryDetails"); Hashtable<String, Hashtable<String, Integer>> cat = (Hash
<%
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;
}
}
公共类函数视图{
字符串函数名;
列出子功能;
公共函数视图(字符串函数名,列出子函数){
this.functionName=functionName;
this.subfunctions=子功能;
}
公共字符串getFunctionName(){
返回函数名;
}
public void setFunctionName(字符串functionName){
this.functionName=functionName;
}
公共列表getSubfunctions(){
返回子函数;
}
public void setSubfunctions(列出子函数){
this.subfunctions=子功能;
}
}
公共类子函数视图{
字符串子函数名;
整数值;
公共子函数视图(字符串子函数名,整数值){
this.subFunctionName=子函数名;
这个值=值;
}
公共字符串getSubFunctionName(){
返回子函数名;
}
public void setSubFunctionName(字符串subFunctionName){
this.subFunctionName=子函数名;
}
公共整数getValue(){
返回值;
}
公共无效设置值(整数值){
这个值=值;
}
}
然后在控制器上公开一个名为List getFunctionsView()的方法,并使用一个简单的嵌套jstl foreach循环
编辑:不得不稍微修改一下这个