性别:未知-离线 Maxwell

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

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


发表于 2005-1-13 11:17 资料 文集 短消息 看全部作者
不懂jsp,不过看起来有点像属性的样子,不知道是否setXXXX自动为XXXX属性的写函数,如果是的话,name=name就应该调用name的写函数了,或者另有其他方法把一个函数跟一个属性关联起来。

看了楼上的好像我猜对了


顶部
性别:未知-离线 Maxwell

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

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


发表于 2005-1-13 12:52 资料 文集 短消息 看全部作者
晕了,有些语言在访问XXXX属性时自己去找GetXXXX或者SetXXXX函数,金圭子的说法好像jsp不是这么办的,而是去分析哪个函数修改了XXXX?可是如果某个函数内同时修改了name和dz呢?或者有两个函数修改了name呢?


顶部
性别:未知-离线 Maxwell

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

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


发表于 2005-1-13 13:12 资料 文集 短消息 看全部作者
大致看了一下,不懂。
我的意思是这样,如果出现这样的情况
public void setName(String name)
{
    this.name = name;
    this.dz = name;
}
或者
public void setName(String name)
{
    this.name = name;
}

public void setDz(String dz)
{
    this.name = dz;
}

那name=name的时候会出现什么情况?
顶部
性别:未知-离线 Maxwell

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

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


发表于 2005-1-13 13:45 资料 文集 短消息 看全部作者


QUOTE:
原帖由金圭子于2005-01-13, 13:22:39发表
要回去看看jsp的书了。
反正就算不是jsp,这么用顶多就三种情况:

1.一个值付给两个变量
2.一个变量被付了两次值,后面的覆盖前面的。
3.报错

就是基于这种比较晕的情况,我觉得还是用如下的方法好
1. XXXX属性的读写自动由GetXXXX和SetXXXX完成,我怎么记得java就是这么做的?  好像vb也这样?
2. 指定read=xxxx, write=xxxx,bcb是这么做的,我比较习惯
顶部
性别:未知-离线 Maxwell

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

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


发表于 2005-1-13 15:37 资料 文集 短消息 看全部作者
好像明白点了。
顶部
性别:未知-离线 Maxwell

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

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


发表于 2005-1-14 10:03 资料 文集 短消息 看全部作者
你是怎么交换的?这样?
<jsp:setProperty name="txlInfo" property="UserNamea" param="name"/>
<jsp:setProperty name="txlInfo" property="Passworda" param="name"/>
<jsp:setProperty name="txlInfo" property="Agea" param="name"/>

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

public void setPassworda(String password)
{
    this.userName=password;
}

public void setAgea(int age1)
{
    this.age=age1;    
}

如果这样则说明property="XXXX"是声明了一个属性XXXX,当然一般需要一个get和一个set共同声明一个属性,这个属性的值实际保存在什么变量里是无所谓的,比如Passworda属性值在username变量中,是否冲突是否歧义等需要由程序员来保证。

我现在不明白的是属性怎么跟表单连接起来的,

QUOTE:
Bean的属性名和表单请求的属性名是不同的

但是loranrowe没有给出表单,不知是否是笔误?是属性名跟变量名不同?是否是属性名要跟表单中的名字一致?
顶部
性别:未知-离线 Maxwell

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

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


发表于 2005-1-14 10:10 资料 文集 短消息 看全部作者
呵呵,明白了,jsp其实跟bcb的处理方式是一样的。
顶部
性别:未知-离线 Maxwell

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

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


发表于 2005-1-14 10:16 资料 文集 短消息 看全部作者
总算明白这个复杂关系了,jsp做大型网站还可以,做个小网站还不够麻烦的
顶部
性别:未知-离线 Maxwell

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

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5801
编号 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都会执行。
顶部
性别:未知-离线 Maxwell

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

Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27Rank: 27
柱国(正二品)
组别 诸侯
级别 征东将军
好贴 4
功绩 1845
帖子 5801
编号 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参数来匹配具有相同名字的。
顶部

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




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

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

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