日期:2014-05-17  浏览次数:20772 次

如何给struts1 文本框 赋值
大家好,目前接手一个老系统改造,使用的是JSP+Struts1,里面使用了struts的标签库,现在我想做一个查询功能,其中一个要求是把用户输入在文本框的查询内容显示在查询结果页面(查询输入页面和查询结果页面是同一个jsp文件)的文本框里,原系统是这样做的:
假设查询和显示结果用的jsp文件为a.jsp
在a.jsp里使用如下标签:
HTML code

<!--与后台定义的actionForm关联-->
<jsp:useBean class = "com.vandagroup.ccb.log.LogInfo" id = "form" scope = "request" />

<!--接受用户输入查询内容,并把上次的查询内容回显到此-->
<html:td type="search"><html:text name="keyword" value="<%=form.getKeyword()%>" /></html:td>



在后台action里传递装有前台输入查询内容的actionform到前台JSP页面:
Java code

LogInfo bean = ( LogInfo )request.getAttribute( "LogInfo" );//得到前台的查询内容
request.setAttribute( "form" , bean );//回送前台查询内容到响应页面
return ( mapping.findForward( "list" ) );定向到响应页面



现在出现一个问题:
不能把值赋给<html:text>标签的value属性,导致不能回显查询内容,通过以下代码测试:
HTML code

System.out.println(form.getKeyword()==null?null:form.getKeyword().toString());//能得到后台传过来的值


得出结论:<html:text>标签的value属性不能通过
HTML code
<html:td type="search"><html:text name="keyword" value="<%=form.getKeyword()%>" /></html:td>]

的形式赋值,请问:
1、如何才能给struts的text标签赋值?
2、有没有代码更简洁美观的方法实现我所说的功能?
3、什么版本的struts能够通过<html:text property="age"/>的形式来与ActionForm进行绑定?(我目前用的标签不支持property这个属性)

------解决方案--------------------
你用<html:标签,用name跟后台form属性对应肯定得不到值,你说不支持property这个属性,你干嘛一定要用这个标签,普通的<input type="text" name="" value="">难道这样不行吗,为什么一定要栽倒一棵树上不放
------解决方案--------------------
struts1的标签记不清了 不过你可以用jstl 通过request去取值 #keyword
------解决方案--------------------
用这种方式吧:
HTML code

<html:text property="[color=#FF0000]属性名和你form中的属性一致[/color]" styleId="kind_name" styleClass="input-read"  readonly="true"></html:text>

------解决方案--------------------
探讨
引用:

你用<html:标签,用name跟后台form属性对应肯定得不到值,你说不支持property这个属性,你干嘛一定要用这个标签,普通的<input type="text" name="" value="">难道这样不行吗,为什么一定要栽倒一棵树上不放


使用普通的文本框是可以,我只是想保持页面标签风格一样,并且想弄清是什么原因导致……

------解决方案--------------------
<html:text property="keyword" />直接这样写不可以吗