Welcome

首页 / 软件开发 / JAVA / 基于struts的web应用开发总结(一)

基于struts的web应用开发总结(一)2010-03-20 javaeye 以前经常写的代码,过一了段时间再写发现了一些问题,说明了自己对代码的理解不够。总结如下:

一:

编辑某一条记录,点击“编辑”按钮,当打开的是一个新的页面(如模态框)时,想到记录的ID传到打开的页面去。因为打开的页面与原来操作的页面不是同一个window,所以当执行点击“编辑”按钮操作时,没办法把值赋给打开的页面的元素(如隐藏元素)。如:

$("PHONE_LIST_ID").value = phone_list_id//这种作法是不行的,取不到$("PHONE_LIST_ID"),因为操作的页面与$("PHONE_LIST_ID")所在的页面不是同一个页面。

这时,可以用URL参数传递的方法,如下:

Js代码

url = "/epub_web/jsp/phone_list_mgr/get_classify_phone.do?PHONE_LIST_ID="+serial_num;
window.showModalDialog(url,"","dialogWidth=600px;dialogHeight=400px");

在打开的JSP页面里用:value="<%=request.getParameter("PHONE_LIST_ID")%>",如下:

Html代码

<input type="hidden" name="PHONE_LIST_ID" id="PHONE_LIST_ID" value="<%=request.getParameter("PHONE_LIST_ID")%>"></input>

所以,通过url参数传递的方式,可以实现跨页面的参数传递,而不用用隐藏域来传递。这在跨页面的参数传递中,特别是类似于对记录的编辑操作等,可以很好地适用.

二:

上面第一点的:

<input type="hidden" name="PHONE_LIST_ID" id="PHONE_LIST_ID" value="<%=request.getParameter("PHONE_LIST_ID")%>"></input>

这行代码我原来是用<html:hidden>,如下:

<html:hidden property="PHONE_LIST_ID" value="<%=request.getParameter("PHONE_LIST_ID")%>"/>

因为我本机是在jboss的环境,但是当拿到webspheer的环境下却有提示错误,以前好像就有发现这个情况,也不知道是为什么,先记录下来。

三:

由于粗心,在xml配置时,<action path="" type="" name="" scope="" parameter=""></action>中把name=""这个属性漏掉了,所以程序跑起来时,在servlet端的ActionForm老是提示为null,这发了一些时间。以后有时间的时候好好弄清楚struts的配置的属性的作用。

四:

在servlet端,用struts的ActionForm自带的get和set方法时,发现前台没有set成功。后来查了很久才知道,前台没有用struts自带的html标签,如<hmtl:text>我就直接用<input type="text"/>,所以struts认不到,在action端用set方法当然前台没有反应了。以前也遇到过这些问题,时间一久就忘了,所以还是需要做些记录。