我是初学者,想问个问题!很简单,(50分)

  • 主题发起人 主题发起人 CADVector
  • 开始时间 开始时间
C

CADVector

Unregistered / Unconfirmed
GUEST, unregistred user!
这是JSP文件
<%@ page import=&quot;Beans.NameBean&quot;
%>
<jsp:useBean id=&quot;pageBean&quot;
class=&quot;Beans.NameBean&quot;
scope=&quot;page&quot;
>
<jsp:setProperty name=&quot;pageBean&quot;
property=&quot;*&quot;
/>
</jsp:useBean>
<jsp:useBean id=&quot;sessionBean&quot;
class=&quot;Beans.NameBean&quot;
scope=&quot;session&quot;
>
<jsp:setProperty name=&quot;sessionBean&quot;
property=&quot;*&quot;
/>
</jsp:useBean>
<%/* dfgfd */%>
<html>
<head><title> The UseBean JSP</Title></head>
<body>
<H3>Welcome to The UseBean Jsp</H3>
<P>May we have your name>
<P><b>Page bean:</B>
<% if (pageBean.getNewName().equals(&quot;&quot;)){%>
Ido
n't know you.
<%} else
{%>
hello <%= pageBean.getNewName()%>!
<%}%>
<P><b>Session bean:</B>
<% if (sessionBean.getNewName().equals(&quot;&quot;)){%>
Ido
n't know you either.
<%} else
{
if ((request.getParameter(&quot;newname&quot;)==null)||
(request.getParameter(&quot;newname&quot;).equals(&quot;&quot;))){%>

aha,i remember you.
<% }%>
you are <%=sessionBean.getNewName()%>.
<% }%>

<Form action = &quot;usebean.jsp&quot;
Method= get>
<input type= Text name= newname size= 20 >
<input type= submit value=&quot;Submit name&quot;
>
</form>

</body>
</html>

这是JAVABEAN
package Beans;
public class NameBean{
String newname=&quot;sss&quot;;
public void NameBean(){}
public String getNewName(){
return newname;
}
public void setNewName(String newname){
this.newname=newname;
}


}
问题一:
我运行了JSP后出现页面如下:
Welcome to The UseBean Jsp
May we have your name>
Page bean: hello sss!
Session bean: aha,i remember you. you are sss.
这行是一个文本框和一个按钮
然后我在文本框中输入1111内容后,再按按钮后,应该输出
Welcome to The UseBean Jsp
May we have your name>
Page bean: hello 1111!
Session bean: you are sss.
但是好象不对啊,不知道为什么?请指点
 
你好像来错了地方.[:)]
 
9494
找错路了
 
对的啊,
你程序中没有setNewName(“11111”)的语句给newname赋值
输出的肯定就是newname原始的值:sss.
 
可是我用
<jsp:useBean id=&quot;pageBean&quot;
class=&quot;Beans.NameBean&quot;
scope=&quot;page&quot;
>
<jsp:setProperty name=&quot;pageBean&quot;
property=&quot;*&quot;
/>
</jsp:useBean>
<jsp:useBean id=&quot;sessionBean&quot;
class=&quot;Beans.NameBean&quot;
scope=&quot;session&quot;
>
<jsp:setProperty name=&quot;sessionBean&quot;
property=&quot;*&quot;
/>
</jsp:useBean>
设置属性的啊,难道这个不能设置pageBean,SessionBean的属性值吗?
 
你提的问题不是delphi编程内容吧
 
<jsp:useBean id=&quot;pageBean&quot;
class=&quot;Beans.NameBean&quot;
scope=&quot;page&quot;
>
<jsp:setProperty name=&quot;pageBean&quot;
property=&quot;NewName&quot;
value=&quot;1111&quot;
/>
</jsp:useBean>
其实我觉得这样显示的调用更好,代码也更清晰。
calssname.setNewName(&quot;1111&quot;)
 
JSP语法setProperty
By 星☆星 发表于 2005-6-15 13:34:53
<jsp:setProperty>
设置Bean中的属性值.
JSP语法


<jsp:setProperty
name=&quot;beanInstanceName&quot;
{
property= &quot;*&quot;
|
property=&quot;propertyName&quot;
[ param=&quot;parameterName&quot;
] |
property=&quot;propertyName&quot;
value=&quot;{string | <%= expression %>}&quot;
}
/>

例子


<jsp:setProperty name=&quot;mybean&quot;
property=&quot;*&quot;
/>
<jsp:setProperty name=&quot;mybean&quot;
property=&quot;username&quot;
/>
<jsp:setProperty name=&quot;mybean&quot;
property=&quot;username&quot;
value=&quot;Steve&quot;
/>

描述
<jsp:setProperty>元素使用Bean给定的setter方法,在Bean中设置一个或多个属性值。你在使用这个元素之前必须得使用<jsp:useBean>声明此Bean.因为,<jsp:useBean>和<jsp:setProperty>是联系在一起的,同时这他们使用的Bean实例的名字也应当相匹配(就是说,在<jsp:setProperty>中的name的值应当和<jsp:useBean>中id的值相同)
你能使用多种方法利用<jsp:setProperty>来设定属性值 :
通过用户输入的所有值(被做为参数储存中request对象中)来匹配Bean中的属性
通过用户输入的指定的值来匹配Bean中指定的属性
在运行时使用一个表达式来匹配Bean的属性
每一种设定属性值的方法都有其特定的语法,下面我们会来讲解
属性及其用法
name=&quot;beanInstanceName&quot;
表示已经在<jsp:useBean>中创建的Bean实例的名字.
property=&quot;*&quot;
储存用户在Jsp输入的所有值,用于匹配Bean中的属性。在Bean中的属性的名字必须和request对象中的参数名一致.

如果request对象的参数值中有空值,那么对应的Bean属性将不会设定任何值。同样的,如果Bean中有一个属性没有与之对应的Request参数值,那么这个属性同样也不会设定.
property=&quot;propertyName&quot;
[ param=&quot;parameterName&quot;
]
使用request中的一个参数值来指定Bean中的一个属性值。在这个语法中,property指定Bean的属性名,param指定request中的参数名.
如果bean属性和request参数的名字不同,那么你就必须得指定property和param ,如果他们同名,那么你就只需要指明property就行了.
如查参数值为空(或未初始化),对应的Bean属性不被设定.
property=&quot;propertyName&quot;
value=&quot;{string | <%= expression %>}&quot;
使用指定的值来设定Bean属性。这个值可以是字符串,也可以是表达式。如果这个字符串,那么它就会被转换成Bean属性的类型(查看上面的表).如果它是一个表达式,那么它类型就必须和它将要设定的属性值的类型一致。
如果参数值为空,那么对应的属性值也不会被设定。另外,你不能在一个<jsp:setProperty>中同时使用param和value
技巧
如果你使用了property=&quot;*&quot;,那么Bean的属性没有必要按Html表单中的顺序排序
 
欢迎光临 www.stonebloom.com
 
我顶大唐。。。。。。1楼的,写JSP程序要清晰一点
 
后退
顶部