我来我网
https://5come5.cn
 
您尚未 登录  注册 | 菠菜 | 软件站 | 音乐站 | 邮箱1 | 邮箱2 | 风格选择 | 更多 » 
 

本页主题: jsp程序出了点问题 显示签名 | 打印 | 加为IE收藏 | 收藏主题 | 上一主题 | 下一主题

gzerone



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 674
威望: 0
浮云: 1122
在线等级:
注册时间: 2006-12-10
最后登陆: 2008-06-30

5come5帮你背单词 [ fever /'fi:və/ n. 发烧,发热,热病,狂热;vt. 使发烧,使发狂 ]


jsp程序出了点问题

问题一:
看到一个jsp文件body部分:
<body>
    <%@page import="org.zero.hello.hello" %>
    <jsp:useBean id="hello" scope="session" class="org.zero.hello.hello"/>
    <jsp:setProperty name="hello" property="*"/>
    <h1>Hello World</h1>
    <p>Bean has been accessed <jsp:getProperty name="hello" property="count"/> times.
    <p><hr><p>
    <%if(!hello.hasName()){ %>
    This is a simple form:<p>
    <form method="get" action="hello.jsp">
    What's your name?<input type="text" name="name">
    <input type="submit" value="Submit">
    </form>
    <%}else{ %>
    Hello <jsp:getProperty name="hello" property="name"/>
    <%} %>
  </body>

下面是指定的bean:
package org.zero.hello;

public class hello {
    private String username;
    private boolean flag = false;
    private int count = 0;
    public String getName(){
        return username;
    }
    public void setName(String username){
        this.username = username;
        flag = true;
    }
    public boolean hasName(){
        return flag;
    }
    public int getCount(){
        return ++count;
    }
}

上述代码运行正常的,可是jsp文件中<jsp:getProperty name="hello" property="name"/>,它的property为何要设成name,property的作用不是确定需要输出的属性名吗?而在上述hellobean中该属性应当是username才对啊,所以自己改过后试了一下,产生异常,提示在hellobean中没有username属性的任何信息,后来甚至对表单和bean里面的参数都进行过相关修改,仍然不行。???

问题二:
<jsp:setProperty name="hello" property="*"/>它具体是如何动作的,有解释它去搜索参数名与hellobean的属性相匹配的请求对象。可还是不甚理解。

希望蝈蝈们帮帮忙,谢谢
顶端 Posted: 2007-09-14 23:49 | [楼 主]
josh



性别: 帅哥 状态: 该用户目前不在线
头衔: 生活在别处
等级: 人见人爱
发贴: 2843
威望: 0
浮云: 1130
在线等级:
注册时间: 2006-12-06
最后登陆: 2020-08-01

5come5帮你背单词 [ empirical /im'pirikəl/ a. 经验主义的 ]


才学者看不懂,
顶端 Posted: 2007-09-15 08:43 | [1 楼]
datuz



性别: 帅哥 状态: 该用户目前不在线
等级: 荣誉会员
发贴: 1425
威望: 3
浮云: 399
在线等级:
注册时间: 2006-09-15
最后登陆: 2009-10-03

5come5帮你背单词 [ liberate /'libəreit/ vt. 解放,使获得自由,释放,使获得自由,释出,放出 ]


一.你bean里面的方法名是getName(),所以<jsp:getProperty>取出的名字就是Name,它并不是直接去取你的属性值,是通过get方法去取
二.  " * "是代表提交的表单的属性自动匹配bean里面所有属性:比如你在另一个页面上提交一个表单,表单里面有 name,flag,count属性,提交到该页面后<jsp:setProperty>可以自动从request中取出这些变量,创建bean;
顶端 Posted: 2007-09-16 11:33 | [2 楼]
gzerone



性别: 帅哥 状态: 该用户目前不在线
等级: 栋梁之材
发贴: 674
威望: 0
浮云: 1122
在线等级:
注册时间: 2006-12-10
最后登陆: 2008-06-30

5come5帮你背单词 [ echo /'ekəu/ a. & n. 回声,回波,共鸣 ]


Quote:
引用第2楼datuz于2007-09-16 11:33发表的  :

二.  " * "是代表提交的表单的属性自动匹配bean里面所有属性:比如你在另一个页面上提交一个表单,表单里面有 name,flag,count属性,提交到该页面后<jsp:setProperty>可以自动从request中取出这些变量,创建bean;

楼上版主说到点了 问题出在这里 我当时没有理解 现在明白了

Many Thanks
顶端 Posted: 2007-09-16 21:32 | [3 楼]
我来我网·5come5 Forum » 程序员之家

Total 0.008970(s) query 5, Time now is:05-23 02:19, Gzip enabled
Powered by PHPWind v5.3, Localized by 5come5 Tech Team, 黔ICP备16009856号