我意思是当显示该JSP页面时,会根据List中的元素来决定响应的复选框是否应该被选中,
比如:
<%
List<String> list = new ArrayList<String>();
list.add("java");
list.add("asp");
%>
有复选框如下:
<input type="checkbox" name="language" value="java" />
<input type="checkbox" name="language" value="php" />
<input type="checkbox" name="language" value="asp"/>
我希望显示页面时只有第一个和第三个复选框被选中。(我是在firefox上测试的)
我做的尝试如下:
第一种方案(结果是全选中了):
<input type="checkbox" name="language" value="java" checked=<%=list.contains("java") %>/>
<input type="checkbox" name="language" value="java" checked=<%=list.contains("php") %>/>
<input type="checkbox" name="language" value="java" checked=<%=list.contains("asp") %>/>
第二种方案(仍是全选中了):
<input type="checkbox" name="language" value="java" checked=<%=list.contains("java")?"checked":"unchecked" %>/>
<input type="checkbox" name="language" value="java" checked=<%=list.contains("php")?"checked":"unchecked" %>/>
<input type="checkbox" name="language" value="java" checked=<%=list.contains("asp")?"checked":"unchecked" %>/>
感觉好像是只要 checked属性出现了而不管它的值是多少,都是选中状态。
我不想使用下面这个方法,太麻烦了。
<% if(list.contains("java")){%>
<input type="checkbox" name="language" value="java"/>
<%}else{%>
<input type="checkbox" name="language" value="java" checked="checked"/>
<%}%>我意思应该够明白了吧,请高手指点,谢谢...急.....

解决方案 »

  1.   

    你那样后面的checked的值都是true,当然都选中了
      

  2.   

    不是啊,List中没有php,所以按理说php这个复选框应该是未选中才对。
      

  3.   


    <%@ page language="java" contentType="text/html; charset=GB18030"
        pageEncoding="GB18030"%>
    <%@page import="java.util.*" %>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=GB18030">
    <title>Insert title here</title>
    </head>
    <body>
    <% 
    List <String> list = new ArrayList <String>(); 
    list.add("java"); 
    list.add("asp"); 
    %> 
    有复选框如下: 
    <input type="checkbox" name="language" value="java" <%=list.contains("java")?"checked=checked":""%> /> 
    <input type="checkbox" name="language" value="php" <%=list.contains("php")?"checked=checked":""%>/> 
    <input type="checkbox" name="language" value="asp" <%=list.contains("asp")?"checked=checked":""%> /> 
    </body>
    </html>经测试是可以的
      

  4.   

    应该不是那么理解的吧,checked后面是一个Boolean值吧?为ture就是选中状态的
      

  5.   

    在第二种方案中改一下,可能就行了。第二种方案改为:
    <input type="checkbox" name="language" value="java"  <%=list.contains("java")?"checked":"unchecked" %>/> 
    <input type="checkbox" name="language" value="java"  <%=list.contains("php")?"checked":"unchecked" %>/> 
    <input type="checkbox" name="language" value="java"  <%=list.contains("asp")?"checked":"unchecked" %>/>
      

  6.   

    只要有checked,不管是checked=true或false,都会被选中。
    unchecked 或者 不写 就能实现不选中