先弄明白 JSP,Servlet 的原理,有很多视频教程的

解决方案 »

  1.   

    首先我不是高手,因为没事所以看了看你的问题,之前也接触过JSP,<jsp:getProperty property="check" name="check"/>这个标签根据你的逻辑是想返回这个JAVABEAN里面的boolean属性?根据文献getProperty返回的都是字符串形式,你在javabean里面写了isCheck()方法,那么直接用check.isCheck(),便可返回这个方法的boolean。以上是我的一点看法
      

  2.   

    嗯,可是他就是在处理数据的类里面定义了一个check,然后在check.jsp里把boolean类型的check变量显示出来了,帖子里的变量a应该是check啊,我自己调试的时候改了。
      

  3.   

    嗯,可是他就是在处理数据的类里面定义了一个check,然后在check.jsp里把boolean类型的check变量显示出来了,帖子里的变量a应该是check啊,我自己调试的时候改了。
    首先 BeanCheck 这个类你把他作为了一个javabean ,定义语句是<jsp:useBean id="check" class="com.time.BeanCheck"></jsp:useBean> 那么id指定的check就是BeanCheck类的一个实例,相当于new了一个,再反观jsp被服务器处理的原理,其实每个jsp第一次运行都会被编译成一个servlet,所以,最终还是走不出servlet的影子,jsp他本身就是一个java类,而使用<jsp:useBean>标签,就相当于在你这个JSP类中new()了一个class="com.time.BeanCheck",且实例变量名为id=check,通俗点说就是 BeanCheck check=new() BeanCheck ,所以<jsp:getProperty property="check" name="check"/>相当于调用了check(这个check是new出来的对象)中的check(这个check是对象new出来的时候自带的成员变量,也就是最开始你自己定义的private boolean check;)变量,程序表达就相当于check.check。不知道这样解释你是否赞同,另外变量名和对象名的书写尽量区别大一点,一个check代表两个不同的定义是容易混淆的
      

  4.   

    在check.jsp最后的验证处应该调用check.isCheck()才会有正确的比较结果
      

  5.   

    嗯,可是他就是在处理数据的类里面定义了一个check,然后在check.jsp里把boolean类型的check变量显示出来了,帖子里的变量a应该是check啊,我自己调试的时候改了。
    首先 BeanCheck 这个类你把他作为了一个javabean ,定义语句是<jsp:useBean id="check" class="com.time.BeanCheck"></jsp:useBean> 那么id指定的check就是BeanCheck类的一个实例,相当于new了一个,再反观jsp被服务器处理的原理,其实每个jsp第一次运行都会被编译成一个servlet,所以,最终还是走不出servlet的影子,jsp他本身就是一个java类,而使用<jsp:useBean>标签,就相当于在你这个JSP类中new()了一个class="com.time.BeanCheck",且实例变量名为id=check,通俗点说就是 BeanCheck check=new() BeanCheck ,所以<jsp:getProperty property="check" name="check"/>相当于调用了check(这个check是new出来的对象)中的check(这个check是对象new出来的时候自带的成员变量,也就是最开始你自己定义的private boolean check;)变量,程序表达就相当于check.check。不知道这样解释你是否赞同,另外变量名和对象名的书写尽量区别大一点,一个check代表两个不同的定义是容易混淆的
    但是,java类里的check保存了isCheck方法的返回值了吗?没保存的话调用了也不应该有值啊
      

  6.   

    嗯,可是他就是在处理数据的类里面定义了一个check,然后在check.jsp里把boolean类型的check变量显示出来了,帖子里的变量a应该是check啊,我自己调试的时候改了。
    首先 BeanCheck 这个类你把他作为了一个javabean ,定义语句是<jsp:useBean id="check" class="com.time.BeanCheck"></jsp:useBean> 那么id指定的check就是BeanCheck类的一个实例,相当于new了一个,再反观jsp被服务器处理的原理,其实每个jsp第一次运行都会被编译成一个servlet,所以,最终还是走不出servlet的影子,jsp他本身就是一个java类,而使用<jsp:useBean>标签,就相当于在你这个JSP类中new()了一个class="com.time.BeanCheck",且实例变量名为id=check,通俗点说就是 BeanCheck check=new() BeanCheck ,所以<jsp:getProperty property="check" name="check"/>相当于调用了check(这个check是new出来的对象)中的check(这个check是对象new出来的时候自带的成员变量,也就是最开始你自己定义的private boolean check;)变量,程序表达就相当于check.check。不知道这样解释你是否赞同,另外变量名和对象名的书写尽量区别大一点,一个check代表两个不同的定义是容易混淆的
    你说的我都同意,也看得明白,我不理解的就是BeanCheck类里的isCheck方法,这个方法的返回值并没有赋值给类中的check变量啊,为什么在check.jsp中直接取出boolean类型的check,其值就是返回的结果?
      

  7.   


    嗯,可是他就是在处理数据的类里面定义了一个check,然后在check.jsp里把boolean类型的check变量显示出来了,帖子里的变量a应该是check啊,我自己调试的时候改了。
    首先 BeanCheck 这个类你把他作为了一个javabean ,定义语句是<jsp:useBean id="check" class="com.time.BeanCheck"></jsp:useBean> 那么id指定的check就是BeanCheck类的一个实例,相当于new了一个,再反观jsp被服务器处理的原理,其实每个jsp第一次运行都会被编译成一个servlet,所以,最终还是走不出servlet的影子,jsp他本身就是一个java类,而使用<jsp:useBean>标签,就相当于在你这个JSP类中new()了一个class="com.time.BeanCheck",且实例变量名为id=check,通俗点说就是 BeanCheck check=new() BeanCheck ,所以<jsp:getProperty property="check" name="check"/>相当于调用了check(这个check是new出来的对象)中的check(这个check是对象new出来的时候自带的成员变量,也就是最开始你自己定义的private boolean check;)变量,程序表达就相当于check.check。不知道这样解释你是否赞同,另外变量名和对象名的书写尽量区别大一点,一个check代表两个不同的定义是容易混淆的
    你说的我都同意,也看得明白,我不理解的就是BeanCheck类里的isCheck方法,这个方法的返回值并没有赋值给类中的check变量啊,为什么在check.jsp中直接取出boolean类型的check,其值就是返回的结果?
    本来就不是你isCheck返回的变量,他是BeanCheck被NEW出来以后的一个实例变量check。如果没错的话返回的就是true
      

  8.   

    <jsp:>这个中貌似已经被遗弃了吧,你可以直接在jsp页面写
    <%
    String str = request.getPrarmeter("str");
    String startStr = request.getPrarmeter("startStr");
    %>
    这样就获取到str和startStr的值,然后在做判断,
    最后用
    out.println();将你的结果输出就行了。
      

  9.   

    感谢各位的发言,尤其是s041738,让我对javabean的理解加深了不少。但是,各位说的都不是主要的问题,可能是我表达的不清楚吧。今天重新思考了一遍,终于发现了问题所在,而且经过了实践检验,应该是没有问题的。其实类中的check和isCheck是存在关系的,isCheck是由check生成的setXXX,getXXX方法,由于check是boolean类型的,所以生成了isCheck,所以,返回值当让被压到了check里,和用setproperty取其他方法是一样的!找出问题,一身轻松啊!列出来给初学者一些启发。