性别:未知-离线 loranrowe

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 奋威校尉
好贴 1
功绩 6
帖子 143
编号 17767
注册 2004-9-16


发表于 2005-1-14 10:12 资料 短消息 只看该作者


QUOTE:
原帖由Maxwell于2005-01-14, 10:03:12发表
我现在不明白的是属性怎么跟表单连接起来的,

但是loranrowe没有给出表单,不知是否是笔误?是属性名跟变量名不同?是否是属性名要跟表单中的名字一致?

jsp的实现分3个部分
html、jsp和bean(可选)
html在提交请求的时候,jsp通过<jsp:get(set)Property>句中的param项与html的相应域建立联系,property项建立与bean的联系,这两项都可选

get的时候可以不需要接收域,直接生成html的一部分了

jsp语句是嵌在html里面的,类比宏替换


顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5800
编号 622
注册 2004-7-7


发表于 2005-1-14 10:16 资料 文集 短消息 只看该作者
总算明白这个复杂关系了,jsp做大型网站还可以,做个小网站还不够麻烦的


顶部
性别:男-离线 kingofworl

Rank: 7Rank: 7Rank: 7Rank: 7
组别 校尉
级别 右将军
好贴 1
功绩 21
帖子 1022
编号 18811
注册 2004-10-12


发表于 2005-1-14 10:17 资料 主页 文集 短消息 只看该作者
我现在不明白的是属性怎么跟表单连接起来的,

是由<jsp:useBean id=xxx>这个决定的,当html把用户填入的值submit到jsp时,jsp中<jsp:useBean id=xxx class=aaa>有这个动作,所以能自动调用(自醒机制)aaa中的方法,具体通过什么就是一直在讨论的
顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5800
编号 622
注册 2004-7-7


发表于 2005-1-14 10:23 资料 文集 短消息 只看该作者
<input type=text name=a>

<jsp:useBean id = "txlInfo" scope = "page" class = "GuestBean" />
<jsp:setProperty name="txlInfo" property="b" param="a"/>

public class GuestBean{

private String c;

public void setB(String str){
    this.c=str;
}

我认为是这样,表单里的名字要跟param一样,property的名字要跟方法对应,就是同样颜色的要对应,至于变量名就随便起了,比如叫c。

调用是否是通过检查param是否有同名的然后调用同名的param对应的方法。如果这样是不是就可以同一个域一次引起多个方法执行?
<jsp:setProperty name="txlInfo" property="b" param="a"/>
<jsp:setProperty name="txlInfo" property="d" param="a"/>
这样setB和setD都会执行。
顶部
性别:男-离线 kingofworl

Rank: 7Rank: 7Rank: 7Rank: 7
组别 校尉
级别 右将军
好贴 1
功绩 21
帖子 1022
编号 18811
注册 2004-10-12


发表于 2005-1-14 10:29 资料 主页 文集 短消息 只看该作者


QUOTE:
原帖由Maxwell于2005-01-14, 10:23:16发表
<input type=text name=a>
<jsp:setProperty name="txlInfo" property="b" param="a"/>

public void setB(String str){
    this.c=str;
}

我认为是这样,表单里的名字要跟param一样,property的名字要跟方法对应,就是同样颜色的要对应,至于变量名就随便起了,比如叫c。

public String userName;
        public String password;
        public int age;
       
        public void setUserNamea(String name)
        {
                this.password=name;

蓝色部分我昨天初步试也认为是这样,刚才看错了,maxwell兄的经验果然丰富
顶部
性别:未知-离线 loranrowe

Rank: 3Rank: 3Rank: 3
组别 士兵
级别 奋威校尉
好贴 1
功绩 6
帖子 143
编号 17767
注册 2004-9-16


发表于 2005-1-14 10:31 资料 短消息 只看该作者


QUOTE:
原帖由Maxwell于2005-01-14, 10:23:16发表
<input type=text name=a>

<jsp:useBean id = "txlInfo" scope = "page" class = "GuestBean" />
<jsp:setProperty name="txlInfo" property="b" param="a"/>

public class GuestBean{

private String c;

public void setB(String str){
    this.c=str;
}

我认为是这样,表单里的名字要跟param一样,property的名字要跟方法对应,就是同样颜色的要对应,至于变量名就随便起了,比如叫c。

嗯嗯,基本上,简单来讲,就是这样了  
另外说一句,OO语言,很多思想、处理方式都是类似的
一通百通
不过都要先打好结构化语言的基础,才好理解
顶部
性别:未知-离线 Maxwell

代王
监管使
枢密直学士
山南西道节度使

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5800
编号 622
注册 2004-7-7


发表于 2005-1-14 10:39 资料 文集 短消息 只看该作者
从下面的文字看如果你只改了方法名是不行的,是不是在没有找到对应的方法时会自动生成一个默认的方法,这个方法也刚好完成任务?

以下是四种jsp:setProperty的可用的属性:
属性 用法

name
  这是一个必选属性。它指出哪一个bean的属性将被设置。jsp:usebean必须出现在jsp:setProperty之前。

property
  这是一个必选属性。表明您将设置哪一个属性。然而,有一个特殊的情况:如果以"*"为值意味着,所有的名称与bean的属性匹配的request参数都将被传递到相应的属性设置方法。
value
  这是一个可选属性。它指定被设置的属性的值。字符串的值通过相应的对象或包的标准的valueOf方法将自动的转换为numbers,boolean,Boolean,byte,Byte,char,和Character。例如,boolean或Boolean属性的值“true”将通过Boolean.valueOf方法转化,而,一个int或Integer属性的值“42”将通过Integer.valueOf转化。您不能同时使用value和param属性,但,两个都不用是允许的。

param
  这是一个可选属性。它指明了bean的属性应该继承的request的参数。如果当前的request没有这样的一个参数,就什麽也不做:系统并不将null传给设置属性的方法。因此,您可以使用bean的缺省值。例如下面的这段程序执行“将numberOfItems属性设置为任意numItems request参数的值,如果有这样的一个request参数,否则什么也不做。”

<jsp:setProperty name="orderBean"
property="numberOfItems"
param="numItems" />

  如果您将value和param同时缺省,这和您将param的名称设为bean的属性名相同一样。您可以通过将name的值设置为”*”和省略value和param来自动的使用与bean的属性相应的request的属性。在这种情况下,服务器将反复的查找可用的属性和request参数来匹配具有相同名字的。
顶部
性别:男-离线 kingofworl

Rank: 7Rank: 7Rank: 7Rank: 7
组别 校尉
级别 右将军
好贴 1
功绩 21
帖子 1022
编号 18811
注册 2004-10-12


发表于 2005-1-14 10:40 资料 主页 文集 短消息 只看该作者
我有试验了一下,事实正如maxwell兄所举例子,实际上大家早就这么说了,都怪我之前没理解,至此终于明白了
顶部
性别:男-离线 青蓝

白衣伯爵

Rank: 8Rank: 8
组别 限制发言用户
级别 征东将军
功绩 274
帖子 5924
编号 244
注册 2003-9-1
家族 轩辕狼党


发表于 2005-2-1 23:52 资料 主页 短消息 只看该作者
又了解了一点知识~`高兴~~~~````
顶部

正在浏览此帖的会员 - 共 3 人在线




当前时区 GMT+8, 现在时间是 2025-2-11 07:51
京ICP备2023018092号 轩辕春秋 2003-2023 www.xycq.org.cn

Powered by Discuz! 5.0.0 2001-2006 Comsenz Inc.
Processed in 0.011528 second(s), 8 queries , Gzip enabled

清除 Cookies - 联系我们 - 轩辕春秋 - Archiver - WAP