求救:struts中如何初始化的值????

Gemini_h 2003-06-18 09:34:56
我在struts中使用它的<html:select><html:options></html:select>.
我想实现的是,在jsp页面load的时候初始化html:select>的值,但是<html:form>标记没有onLoad事件,那么我就不能在javascript中控制load事件进行初始化。我该怎么做呢?(<html:select>中的值是在打开jsp页面时从actionForm中赋给的。这是struts标记库的特点吧)
...全文
293 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Gemini_h 2003-06-20
  • 打赏
  • 举报
回复
to Jass(Jass):
非常感谢你的回复。
我明白你的意思了。可是我在action中把actionForm是保存到request 中的呀,(request.setAttribute("actionFormName",actionForm)),可是还是出现以前说的问题。
Jass 2003-06-19
  • 打赏
  • 举报
回复
作用域(scope)分为request和session,你可以指定action对应的actionForm是保存在request或者session中(Struts会替你做这项工作),这样的话,你可以随时从request或者
session中按照actionForm的name属性取出该actionForm!如果你指定保存到session的话,那么不论你跳转多少次页面,当你再回到原来的页面时,你会发现你上次在页面输入的还保留在那里!你仔细想想就会明白为什么说这个功能非常有用了!呵呵!~~~
Gemini_h 2003-06-18
  • 打赏
  • 举报
回复
to: whatwhynot(努力努力!)
to: sandyen(杉叶)

两位朋友,可能我的表达没太明白,我阐述一下:
1、我现在用的是struts的标记库,因为这样提交时可以自动和actionForm绑定。或许直接用标准的标记库也行,但现在我不想改
2、其实我想实现的是想在打开页面时控制下拉框的选中相,即<select></select>中<option>的selected属性。但是struts下的<html:option>标记没有selected属性
3、由于第2条原因,我想在javascript中操纵下拉框的selceted属性,本来这样是可以的,但是讨厌的是,<html:form>却没有onload事件,所以不能在每次打开页面时控制它

这就是我的问题所在,希望各位高手不惜赐教
zenxin0103 2003-06-18
  • 打赏
  • 举报
回复
to : whatwhynot(努力努力!)

有没做过Mastering Jakarta Struts一书的第十一章例子。

我的在登陆以后便抛出Cannot find bean employees in any scope异常。
mengz 2003-06-18
  • 打赏
  • 举报
回复
to sandyen(杉叶)

那么直接用<SELECT> 怎么让其中一个OPTION设为SELECTED属性呢?
whatwhynot 2003-06-18
  • 打赏
  • 举报
回复

<select name="obj_Id" class="text" style="width:355px">
<option value="" selected></option>

<logic:iterate id="sysclass" name="sysclass"type="com.ideacom.siis.domain.Evalue_Obj_Class">
<%
String Id="";
String classSelected="";
if(request.getParameter("id")!=null)
Id=request.getParameter("id");
%>

<logic:equal name="sysclass" property="objclass_id" value="<%=Id%>">
<%classSelected=" selected";%>
</logic:equal>
<option value=<bean:write name="sysclass" property="objclass_id"/><%=classSelected%>><bean:write name="sysclass" property="objclass_name"/></option>
</logic:iterate>
</select>
希望你能看懂!
sandyen 2003-06-18
  • 打赏
  • 举报
回复
jsp页面时从actionForm中赋给的,所以你可以在actionform中给她赋值
还有,你不一定一定要用html:form
你可以直接用form,那就没有问题拉
Gemini_h 2003-06-18
  • 打赏
  • 举报
回复
请问 Jass(Jass)
你说的在创建action的时候指定actionForm的作用域是怎么回事,能详细讲解一下么?我不太清楚action,你指的是在action的perform()方法中吗?
Jass 2003-06-18
  • 打赏
  • 举报
回复
form本来就没有onlod事件呀!onLoad事件是<body>的呀!
至于你提到为什么下次刷新页面时为什么还会保留上次操作的问题,
这就正是Struts的巧妙之处了,你在创建一个Action时,可以指定相应的
ActionForm,并指明是将该ActionForm保存在Request或是session中,
这样的话Struts会根据相应的作用域实现页面的回显,这个功能在大多数
情况下将是相当有用的!如果你不想这么做,那你在创建Action的时候,
不指定ActionForm的作用域就可以了。
Gemini_h 2003-06-18
  • 打赏
  • 举报
回复
to:sandyen(杉叶)

非常感谢你能回帖!还是有一点问题
就拿你的例子来说吧。我也是这么用的,打开页面的时候,下拉框中选中的是collection="labelvalue"中第一个actionForm的deptCd的值,对吧。但是我的问题出现在,当我选中了下拉框中的一个选项后,进行诸如查询之类的提交操作之后,返回该页面(即重新刷新一次)后,该下拉框中出现的仍然是上次操作所选中的那个选项。这是怎么回事?刷新时返回的collection已经是重新查询的到的了,怎么还会保留有以前的选中状态???所以我才想要在页面load时控制select下拉框的选中属性

另外,在帖子上说话太麻烦,你愿意和我用qq聊吗,我的是:5909558
sandyen 2003-06-18
  • 打赏
  • 举报
回复
<html:select property="deptCd">
<html:options collection="labelvalue" property ="value" labelProperty ="label" />
</html:select>

我不知道你是如何实现的,这是我的实现方式
如果你再你的actionform中调用了setDeptCD()那么你就可以得到默认的值

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧