发布
社区首页 >问答首页 >Struts Tiles,如何正确处理这种情况?

Struts Tiles,如何正确处理这种情况?
EN

Stack Overflow用户
提问于 2011-09-16 22:10:31
回答 1查看 275关注 0票数 0

我刚刚开始学习struts(+spring) MVC,我可以使用一些关于这种情况的解释:

我正在使用Struts Tiles作为我的表示层,我想在几个瓦片中显示数据库中的一些数据,这些瓦片与主要内容瓦片将形成完整的页面。我想不出适合mvc模式/最佳实践的合适方法。

这些磁贴的内容是从数据库中获取的,它不是基于用户的输入,例如,磁贴列出了一些添加到商店的最新产品等。

我做了什么:我已经用静态方法创建了类'A‘,它可以查询数据库并返回一些最新产品的列表,并且在这个磁贴的jsp中,我刚刚将scriptlet放入如下所示:

<%表示A.GetLastestProducts()中的每一项;显示数据%>

但有人告诉我这不是个好办法

谁能给我解释一下如何正确处理这种情况,比如“创建查询你的数据库的类,然后创建blach,然后在你的磁贴jsp blach blach中创建blach”

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-16 23:56:00

如果您正在使用struts,我建议在JSP中使用struts架构。我可能会像这样构造它:

代码语言:javascript
代码运行次数:0
复制
public class MyStutsAction extends ActionSupport implements preparable{

    private List<MyNewProducts> newProducts;

    @Override
    public void prepare() throws Exception {
        if(products == null){
            products = MyNewProductsDAO.getProductList();
        }
    }

    //Struts action stuff

    public List<MyNewProducts> getNewProducts(){
        return newProducts;
    }

    public setNewProducts(List<MyNewProducts> newProdcuts){
        this.newProducts = newProducts;
    }

}

然后,您可以从JSP页面访问它:

代码语言:javascript
代码运行次数:0
复制
<s:iterator value="newProducts" status="stat">
    <div> <s:property value="%{attributeName}" /> </div>
</s:iterator>

这将通过维护值堆栈中的产品列表来消除一些不必要的数据库调用,如果出于某种原因,prepare方法中的条件为空,则它将填充该列表。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7445991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档