struts怎么获取jsp页面添加的数据?struts有哪些优缺点?

Struts在软件开发中,是一个非常优秀的框架是最早的Java开源框架之一,它是MVC设计模式的一个优秀实现。 那struts怎么获取jsp页面添加的数据?下面来我们就来给大家讲解一下。

struts怎么获取jsp页面添加的数据.jpg

1.在struts2的方法中利用查询语句查询到结果,然后再对结果进行封装,jsp根据封装获取相关信息

struts2的查询和封装方法:

private List < FreeMarkerDetail > freemarkerdetaillist;

这个是封装的方法类

/**
  * @Title: queryFeedBackById
  * @Description: 根据意见反馈Id查询意见反馈详情
  * @param @return
  * @param @throws ServiceException    参数
  * @return String    返回类型
  * @throws
  */
 public String queryFreeMarkerById() throws ServiceException
 {
     freemarkerdetaillist = freemarkerDetailService.queryFreeMarkerDetailById(freemarkerId);
     ServletActionContext.getRequest()
         .setAttribute("freemarkerdetailList", freemarkerdetaillist);
     return "toFreeMarkerDetailPage";
 }

2.然后安装 ServletActionContext.getRequest().setAttribute("freemarkerdetailList", freemarkerdetaillist); 进行封装

3.jsp页面根据封装获取相关内容:

<table class="sx_table">
                                        <tr>
                                            <td style=" 10%"><label class="name">主键编号</label></td>
                                            <td style=" 10%"><label class="name">关联主键</label></td>
                                            <td style=" 10%"><label class="name">文件名</label></td>
                                            <td style=" 50%"><label class="name">文件路径</label></td>
                                            <td style=" 20%"><label class="name">创建时间</label></td>
                                        </tr>
                                        <c:forEach items="${requestScope.freemarkerdetailList }" var="freemarkerdetailList">
                                            <tr>
                                                <td style=" 10%"><label class="name"></label>
                                                    <span class="toname">
                                                        ${freemarkerdetailList.filesDetailId} </span></td>
                                                <td style=" 10%"><label class="name"></label>
                                                    <span class="toname">
                                                        ${freemarkerdetailList.filesId} </span></td>
                                                <td style=" 10%"><label class="name"></label>
                                                    <span class="toname">
                                                        ${freemarkerdetailList.filesDetailName } </span></td>
                                                <td style="word-break:break-all; word-wrap:break-word;  50%;"><label class="name"></label>
                                                    <span class="toname">
                                                        <a href="${freemarkerdetailList.filesDetailUrl }"> 
                                                        ${freemarkerdetailList.filesDetailUrl }</a> 
                                                    </span>
                                                </td>
                                                <td style=" 20%"><label class="name"></label>
                                                    <span class="toname"> <fmt:formatDate
                                                            value="${freemarkerdetailList.createTime }"
                                                            pattern="yyyy-MM-dd HH:mm:ss" />
                                                </span></td>
                                            </tr>
                                        </c:forEach>
                                    </table>

struts有哪些优缺点?

Struts的优点主要集中体现在两个方面,Taglib和页面导航。Taglib是Struts的标记库,灵活多用,能大大提高开发效率。

Struts这个名字来源于在建筑和旧式飞机中使用的支持金属架。它的目的是为了减少在运用MVC设计模型来开发Web应用的时间。你仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。Struts跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。

Struts的漏洞处理机制常被诟病,一来OGNL的功能强大和请求处理机制极易产生远程执行问题,二来开发组对漏洞处理能力不足,要么修复后仍可以绕过,要么无法修复而长期闲置处理。

总之Struts是流行和成熟的基于MVC设计模式的Web应用程序框架,使用它能够使程序更加规范化,并且还能提高程序开发效率哦!最后大家如果想要了解更多java架构师知识,敬请关注奇Q工具网。

推荐阅读:

java线程池大小多少才合适?java线程池有哪些?

json字符串太长怎么换行?Java字符串如何连接?

qt安装需要联网吗?qt安装版本怎么查看?