STRUTS ,JSP传值问题?

来源:百度知道 编辑:UC知道 时间:2024/05/21 11:25:06
<html:form action="/book">
<html:hidden property="bookid" value="${book.getBookid()}"/>
<html:submit value="提交"/>
</html:form>
我现在想把bookid的值等于book.getBookid()的值,其中book.getBookid()是表达式,可是我得到的bookid="book.getBookid()"不能把值取出来,请高手帮帮忙啊!!!
有没人可以帮一下我的,我的意思就是点击提交就可以把bookid的值传进去一个FORM表单中交给STRUTS来处理而且bookid的值等于JSP页面中的一个book对象的ID,高手帮帮忙啊!!

要取得Book对象的bookid属性的值有两种方法:
第一,使用<bean:write>标签,写法如下
<bean:write name="book" property="bookid"/>
第二,使用EL,写法如下:${book.bookid}。
要注意的是,必须支持JSP2.0,因为只有JSP2.0才支持表达式语言(EL)。另外,这个表达式的原理是调用Book中的getBookid()方法,所以你的类中可以没有申明bookid这个属性,但是一定要有getBookid()这个方法,只不过,你需要在这个方法中返回你要的值而已。
比如,我们在一个类(A)中申明了单价(price)&数量(quantity),但是总价可能我们仅仅只是用作显示,那么我们可能就不必在该类中申明total这样一个属性,而只需申明如下方法:
public int getTotal(){
return (price * quantity);
}
假设request中有A的对象a,
在页面我们可以这样写${a.total}.

不要在Struts的HTML中使用EL表达式。不支持这个。如果要写出来,请使用<bean:write>标签。而且你写得也不对,如果要取出book对象中的这个值,要这么写${book.bookid}。不要写get/set方法,EL会自动执行这个方法。

呵呵,楼主,Struts的HTML标签是不支持el表达式的~
不过可以使用Struts的bean标签来写
但是建议楼主别使用Struts的Html标签,最好用普通HTML标记