Servlet中的代码:
       public class Servlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setAttribute("sex", "男");
request.getRequestDispatcher("index.jsp").forward(request, response);

}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { doGet(request, response);
}}
index.jsp中的代码:
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %><script type="text/javascript">
<!--
function check(){
var sex = "${sex}";
if(sex == "男"){
document.getElementById("man").checked = true;
}else{
document.getElementById("woman").checked = true;
}
}
//-->
</script>
<body onload="check()">
<input type="radio" name="sex" id="man">男
<input type="radio" name="sex" id="woman">女
 </body>
该代码功能已经实现了,但是不理解,${sex}和男直接的比较式怎么回事,为什么要用双等号(用equals是错误的),并且要用var sex = "${sex}",这是我偶然实现的,很困惑,请高手们指点下!

解决方案 »

  1.   

    js和java不一样 对字符串不需要用equals方法 用==就行 
      

  2.   

    ${sex}
    这种用法是EL,只能在JSTL中使用。EL存取变量数据的方法如下
    例如:${sex},它的意思是取出某一范围中名称为sex的变量。因为没有指定哪一个范围的sex,所以默认从Page的范围查找,然后依次是----Request-----Sesssion-----Application范围。如果途中找到了sex,就直接返回值,不再继续找下去,如果都没有找到,则返回null.
      

  3.   

    因为你在request中存的是“男”这个字符串,它是一个变量,equals是比较对象的值是否相等,==运算符用于比较两个变量,比较它们是否引用到同一个对象。
      

  4.   

    JS中没有equals方法Equality operatorsJS中考虑比较基本类型及对象类型的情况分别规定,equal and not equal to deal with primitive values         (==),(!=)identically equal and not identically equal to deal with objects.   (===),(!==)
      

  5.   

    首先 js中没有java那么强大,封装了equal这样的方法。所以在js中肯定是 “==”其次 在   var sex = "${sex}";  中前面的 sex 变量是 js 的变量,后面的变量属于java中的变量
    当然要告诉 解释器 后面的变量不是js变量 所以要这样用, 应该还可以 var sex = <%=sex%>;
      

  6.   

    这种说法不对!javascript是客户端执行,EL是在服务端执行,而服务端比客户端先执行,所以你不能用js来改变已经执行的el表达式的值,但是却可以用el来给js初始化传值,所以上面楼主的代码没问题
      

  7.   


    我只说了取值的方法,又没说存值。6楼的兄弟你好像对EL和JSTL有所混淆。
      

  8.   

    js和java不一样 对字符串不需要用equals方法 用==就行 js中可以使用EL?(我初学者)没用过
      

  9.   

    你看下JavaScript语法不就知道了吗