论坛首页 Java企业应用论坛

Struts2的Action里将html写成String形式输出问题

浏览 10896 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2012-04-29  
list = UsersService.users();//返回用户列表
String str="<div style=\"padding:10px;\">"+
" <table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"+
"   <tr>"+
"     <td><div class=\"button\"><div onclick=\"get('TbMailsAction!mail_public.action')\">发布公告</div></div></td>"+
"     <td>&nbsp;</td>"+
"     <td>&nbsp;</td>"+
"     <td>&nbsp;</td>"+
"     <td>&nbsp;</td>"+
"     <td>&nbsp;</td>"+
"   </tr>"+
" </table>"+
" </div>"+
" <div>"+
" <table  class=\"tlist\" width=\"100%\">"+
"   <tr>"+
"     <th bgcolor=\"#999999\" width=\"150\" align=\"center\">标题</th>"+
"     <th bgcolor=\"#999999\" width=\"150\" align=\"center\">时间</th>"+
"     <th bgcolor=\"#999999\" width=\"150\" align=\"center\">编辑</th>"+
"   </tr>"+
" <s:iterator value=\"list\" status=\"status\">"+
"   <tr>"+
"    <td align=\"center\"><s:property escape=\"false\" value=\"title\" />[/color]</td>"+
"    <td align=\"center\">[color=red]<s:property escape=\"false\" value=\"createtime\"/></td>"+
"    <td align=\"center\" onclick=\"get(\"'TbMailsAction!mail_delete2.action?id='+<s:property escape=\"false\" value=\"id\" />\")\">删除</td>"+
"    </tr>"+
" </s:iterator>"+
" </table>"+
" </div>";

页面能输出,但struts标签取不到值?我确定list里有两个记录。
   发表时间:2012-04-30  
本人也是新手,所以不敢说一定能帮你解决问题。只说说可能出现问题的地方。
第一:页面中是否加入了s标签,也就是下一行代码:
<%@ taglib uri="/struts-tags" prefix="s" %>
如果添加了,那就找第二个问题。
第二:由于Struts2是从Action中跳到页面,是通过Action中封装的属性取值的,如果没有封装相应的属性,是无法取值的,所以请检查Action中封装的属性。
暂时能想到的只有这么多了,希望能帮倒你。谢谢。
0 请登录后投票
   发表时间:2012-04-30   最后修改:2012-04-30
都没办法解释了
你都没有理解Struts2的基本知识,建议你重新看看关于jsp、Servlet、Struts2方面的基础知识先
0 请登录后投票
   发表时间:2012-04-30  
你这根本就是servlet的写法,html干吗不到jsp里去写,非得跑到action里写
0 请登录后投票
   发表时间:2012-04-30   最后修改:2012-04-30
貌似Servlet也不用这么写吧,HTML只要写在JSP就好了,Struts2只是代替了Servlet而已。如果只是练习的话,我觉得楼主这么做也没有什么问题。
我觉得现在的问题是帮楼主找错。。。
0 请登录后投票
   发表时间:2012-04-30   最后修改:2012-04-30
kangfuq 写道
都没办法解释了
你都没有理解Struts2的基本知识,建议你重新看看关于jsp、Servlet、Struts2方面的基础知识先

不解释!!!
0 请登录后投票
   发表时间:2012-04-30  
Occupy_caile 写道
本人也是新手,所以不敢说一定能帮你解决问题。只说说可能出现问题的地方。
第一:页面中是否加入了s标签,也就是下一行代码:
<%@ taglib uri="/struts-tags" prefix="s" %>
如果添加了,那就找第二个问题。
第二:由于Struts2是从Action中跳到页面,是通过Action中封装的属性取值的,如果没有封装相应的属性,是无法取值的,所以请检查Action中封装的属性。
暂时能想到的只有这么多了,希望能帮倒你。谢谢。




String str只是输出到框架(index.jsp)的某个模块,在index.jsp里引用了标签,action里封装了属性;
如果直接写成.jsp还是能取到值的,现在不写.jsp直接写在action里就不行了。谢谢你的提点!
0 请登录后投票
   发表时间:2012-04-30  
"<s:iterator value=\"${list}\" status=\"status\">"
0 请登录后投票
   发表时间:2012-04-30  
为什么要在Action里拼字符串呢,直接在页面上写不行吗
0 请登录后投票
   发表时间:2012-05-01   最后修改:2012-05-01
首先先说你这么干是不应该的,应该把list扔到前台,用标签来遍历。

另外说你的这段代码为什么不好用,你用什么方式将这个html的字符串传递到页面上的?用标签取标签的值肯定不行。你如果用request.setAttribute()、 <%%>这种方式也许能看到结果!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics