社区
Web 开发
帖子详情
能用setProperty传递一个对象给bean吗?
smallstrong
2003-12-08 02:34:16
能用setProperty传递一个对象给bean吗?
...全文
36
23
打赏
收藏
能用setProperty传递一个对象给bean吗?
能用setProperty传递一个对象给bean吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
junyi2003
2003-12-09
打赏
举报
回复
结构和美观是随后追求的东西
junyi2003
2003-12-09
打赏
举报
回复
在JSP中用set/getProperty来传个值而已,一些复杂的处理要么放在Bean中或者JSP中<%/*JAVA*/%>
有时候不要为了结构而结构,也不要为了美观而美观,实用能用好用是第一。
qukmei
2003-12-09
打赏
举报
回复
laipu(寻梦天涯):好像可以啊,不过在bean中执行response.setContentType("text/html")时有个
java.lang.NullPointerException被抛出,我再找找原因看
这是你在传递变量时有空值 ,你可以先检测 一下,再传递
qukmei
2003-12-09
打赏
举报
回复
请问一下,你这个对象是什么?你能讲出来吗?
hanty
2003-12-09
打赏
举报
回复
木头象说法是对的
不过STRUTS技术则可以实现一部分
gujianxin
2003-12-09
打赏
举报
回复
setProperty 本身只支持String,
但你可以通过序列化或者类似的方法来用String做对象的中间状态,来实现传对象.
smallstrong
2003-12-09
打赏
举报
回复
laipu(寻梦天涯):好像可以啊,不过在bean中执行response.setContentType("text/html")时有个
java.lang.NullPointerException被抛出,我再找找原因看
nql10(林):巧妙!但我要的时对象,不是对象中的值
smallstrong
2003-12-09
打赏
举报
回复
qukmei(鬼才):
你好,传递的是request
smallstrong
2003-12-09
打赏
举报
回复
laipu(寻梦天涯):不行,能编译通过,但调用bean时出现request为空的异常
nql10
2003-12-08
打赏
举报
回复
要用的时候再Split开:
<%
String str = jsp2BeanId.getSample();
String[] str1 = str.split(",");
for(int i=0;i<str1.length;i++)
{
out.println(str1[i]+"<br>");
}
%>
nql10
2003-12-08
打赏
举报
回复
jsp2文件:
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.Enumeration"%>
<html>
<head>
<title>
jsp2
</title>
</head>
<%!
private String makeTable(HttpServletRequest request)
{
String strRequest = "";
Enumeration enumera = request.getHeaderNames();
while(enumera.hasMoreElements())
{
String Name = (String)enumera.nextElement();
String value = request.getHeader(Name);
if(value != null)
{
strRequest += value+",";
}
}
return strRequest;
}
%>
<jsp:useBean id="jsp2BeanId" scope="session" class="test_project.Jsp2Bean" />
<jsp:setProperty name="jsp2BeanId" property="sample" value="<%= makeTable(request)%>" />
<jsp:getProperty name="jsp2BeanId" property="sample" />
<body bgcolor="#ffffff">
<h1>
JBuilder Generated JSP
</h1>
</body>
</html>
jsp2Bean文件:
package test_project;
public class Jsp2Bean
{
private String sample;
public String getSample()
{
return sample;
}
public void setSample(String newValue)
{
if (newValue!=null)
{
sample = newValue;
}
}
}
IT凡人
2003-12-08
打赏
举报
回复
<jsp:setProperty name="upload" property="request" param="request"/>试一试
smallstrong
2003-12-08
打赏
举报
回复
protectxp(protect) :hehe,谢谢你的回答
呵呵,感觉你的汉语有些问题哦,"是不是指把对象属性拆分成基本类型,再合成吗?"
这句话我读起来感觉非常的别扭!
protectxp
2003-12-08
打赏
举报
回复
<%=request%>是字符串,
化整为零,把对象再分开,是不是指把对象属性拆分成基本类型,再合成吗?
smallstrong
2003-12-08
打赏
举报
回复
qukmei(鬼才) :非常高兴看到肯定答案,谢谢
可是你还没有说怎样传递啊?
能不能具体说明一下
1,用jsp:setProperty 传递对象时 在jsp中怎样写?
2,你建议的"化整为零,把对象再分开",我不知道该怎样去做
再加30分以示感谢!
smallstrong
2003-12-08
打赏
举报
回复
junyi2003(超级菜鸟) : 谢谢
protectxp(protect):同意你的观点,scriptlet确实很好用,已经成功了,谢谢.
这几句话没有看懂" <jsp:setProperty name="upload" property="request" value="<%=request%>"/>
是不是就该是对象?
可是<%=expr%>在jsp里面一直是变成out.println(expr1);
大部分人会不会直接就认为<%=request%>就该是个字符串?",能明确说一下你的意思吗?
有人能明确的告诉我可不可以用setProperty传递对象吗?
qukmei
2003-12-08
打赏
举报
回复
可以,但建议不要这样用,你可以化整为零,把对象再分开,哈,明白吗?对象变成javaBean来处理,这样可以好一些
protectxp
2003-12-08
打赏
举报
回复
为什么一定要标签,写个scriptlet就搞定了。
setProperty里面的value只能传递字符串,当然int之类也可以,但是实际上还是调用了
Integer.valueOf(String)这个方法,boolean类型等也类似。
在标签库里面标签和jsp页面传递对象时主要靠session或request对象,因为标签里面含有当前jsp页面的pageContext对象的引用,传递引用这一步在jsp运行时完成,但不用手工编写代码。但是作为一般的bean来说,只能手工调用ObjectName.setProperty(ObjectParm)方法,完成对象传递,至少第一个对象要这样,例如你要给的request对象。
至于为什么没有传递对象的功能,
我的一个认为是,标签语言表现能力有限,而且比起程序语言,更容易不严密。
<jsp:setProperty name="upload" property="request" value=request/>
语法错误
<jsp:setProperty name="upload" property="request" value="request"/>
传递字符串"request"。
<jsp:setProperty name="upload" property="request" value="<%=request%>"/>
是不是就该是对象?
可是<%=expr%>在jsp里面一直是变成out.println(expr1);
大部分人会不会直接就认为<%=request%>就该是个字符串?
至于把out对象给bean的事让bean输出不是个好主意,标签才是干这个事的,bean该离view远些。
junyi2003
2003-12-08
打赏
举报
回复
value属性可以是运行时表达式,只要它是一个String.
value属性String可以自动地转换成boolean,byte,char,double,int,float,long和等价类。其他的转换需要在bean的setPropertyName()方法中显式地处理。
junyi2003
2003-12-08
打赏
举报
回复
应该是可以的,FAQ里有篇<<可以直接在Bean里向页面上进行输出吗?可以的话如何做?>>
的帖子,有人回答可以把out对象传递给bean,但没有说明在jsp中怎样传
我想传递request给bean,在jsp中这样写的: <jsp:setProperty name="upload" property="request" value=request />
可出现错误:org.apache.jasper.JasperException: /upload_log.jsp(27,61) quote symbol expected
有人知道该怎样作吗?
加20分!
--------------------
那你自己做做看看啊,呵呵。
加载更多回复(3)
php
set
property
,jsp中
set
property
怎么用?
jsp标签jsp:
set
Property
用法用来设置已经实例化的
Bea
n
对象
的属性第一种形式:该形式是设置
Bea
n 属性的快捷方式.在
Bea
n 中属性的名字,类型必须和request
对象
中的参数名称相匹配。由于表单中传过来的数据类型都是...
IOC操作
Bea
n管理:什么是
Bea
n管理?
Bea
n管理的两种操作方式、
bea
n的生命周
bea
n分类:普通
bea
n与工厂
bea
n、
bea
n的作用域、
bea
n引入外部属性文件
2.
Bea
n管理的两种操作方式2.1 基于xml配置文件方式实现2.1.1 基于xml方式创建
对象
2.1.2 基于xml方式注入属性2.1.2.1 第一种注入方式:使用
set
方法2.1.2.2 第二种注入方式:有参构造方法注入2.1.2.3 使用p名称空间...
jsp标签jsp:
set
Property
用法
jsp:
set
Property
>用来设置已经实例化的
Bea
n
对象
的属性 第一种形式: <jps:
set
Property
name = "Java
Bea
n实例名"
property
= "*"/> 该形式是设置
Bea
n 属性的快捷...
set
Property
>
用来设置已经实例化的
Bea
n
对象
的属性 第一种形式: 该形式是设置
Bea
n 属性的快捷方式.在
Bea
n 中属性的名字,类型...
property
= "*"表示所有名字和
Bea
n属性名字匹配的请求参数都将被
传递
给相应的属性
set
方法。
Java
Bea
n--jsp标签jsp:
set
Property
用法
jsp:
set
Property
>用来设置已经实例化的
Bea
n
对象
的属性第一种形式:<jps:
set
Property
name = "Java
Bea
n实例名"
property
= "*"/>该形式是设置
Bea
n 属性的快捷方式.在
Bea
n ...
Web 开发
81,094
社区成员
341,711
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章