java - struts 2中将java bean转换为json数据

标签 java javascript jquery-plugins struts2

我有一个 java bean 类“MenuItem”,其中包含子项列表。 我想在 jsp 中显示通过该对象的迭代和渲染并显示菜单树。 我尝试了json数据创建,但它需要ajax调用。就我而言,我需要提交页面而不是ajax。

我正在使用 struts 2。任何人都可以建议我如何在 jsp 中渲染和迭代我的 bean 对象吗?

提前致谢。

这是我的菜单 bean 对象:

public class MenuItem implements Serializable {    
    private static final long serialVersionUID = 8690828081102943225L;

    private Long id;
    private String name;
    private Collection<MenuItem> children;
    private String url;
    private String actionHoverLabel;
    private String actionLabel;
    private Long displayOrder;
    private Boolean isLeaf;
    private Boolean isVisible;
    private Long menuLevel;
    private Long parentId;      

    public String getActionHoverLabel() {
        return actionHoverLabel;
    }

    public void setActionHoverLabel(String actionHoverLabel) {
        this.actionHoverLabel = actionHoverLabel;
    }

    public String getActionLabel() {
        return actionLabel;
    }

    public void setActionLabel(String actionLabel) {
        this.actionLabel = actionLabel;
    }

    public Long getDisplayOrder() {
        return displayOrder;
    }

    public void setDisplayOrder(Long displayOrder) {
        this.displayOrder = displayOrder;
    }

    public Boolean getIsLeaf() {
        return isLeaf;
    }

    public void setIsLeaf(Boolean isLeaf) {
        this.isLeaf = isLeaf;
    }

    public Boolean getIsVisible() {
        return isVisible;
    }

    public void setIsVisible(Boolean isVisible) {
        this.isVisible = isVisible;
    }

    public Long getMenuLevel() {
        return menuLevel;
    }

    public void setMenuLevel(Long menuLevel) {
        this.menuLevel = menuLevel;
    }

    public Long getParentId() {
        return parentId;
    }

    public void setParentId(Long parentId) {
        this.parentId = parentId;
    }


    public MenuItem() {
        children = new ArrayList<MenuItem>();
        isVisible = true;
    }

    public MenuItem(Long id, String name) {

        this.id = id;
        this.name = name;
        children = new ArrayList<MenuItem>();
        isVisible = true;
    }

    public Long getId() {    
        return this.id;    
    }

    public void setId(Long id) {
        this.id = id;    
    }

    public String getName() {    
        return this.name;    
    }

    public void setName(String name) {    
        this.name = name;    
    }

    public Collection<MenuItem> getChildren() {

        return this.children;

    }

    public void setChildren(Collection<MenuItem> children) {    
        this.children = children;    
    }


    public boolean isLeaf() {    
        if (children != null && children.size() > 0) {    
            return false;    
        } else {    
            return true;    
        }    
    }

    public void addChild(MenuItem child) {    
        if (child != null && children != null) {    
            children.add(child);
            child.setParentId(this.getId());    
        }    
    }

    public void removeChild(MenuItem child) {    
        if (child != null && children != null) {    
            children.remove(child);
            child.setParentId(null);    
        }    
    }       

    public void setUrl(String url) {
        this.url = url;
    }

    public String getUrl() {
        if (url == null) {
            return name;
        } else {
            return url;
        }
    }


    @Override
    public boolean equals(Object obj) {
        MenuItem m = null;
        boolean isEqual = false;    
        if (id != null && id >= 0) {
            m = (MenuItem) obj;
            if (m.getId().equals(id) 
                    isEqual = true;                     
        } else {    
            isEqual = super.equals(obj);    
        }    
        return isEqual;    
    }

    @Override
    public int hashCode() {    
        if (id != null && id >= 0) {    
            return id.hashCode();    
        } else {    
            return super.hashCode();    
        }    
    }

    @Override
    public String toString() {    
        return "name: " + name + " id: " + id;    
    }

最佳答案

如果你想在JSP中操作bean,你可以很好地使用struts标签来做到这一点。 bean 必须在范围内。

为什么在这种情况下需要 JSON? 如果您仍然需要 JSON,请检查 GSON 库和 Jackson 映射器库。 在 JSP 上,您可以将 JSON 对象存储在变量中,然后对其进行操作。 在页面提交时,Struts 操作将形成 JSON,然后将其设置在页面 bean 变量中。

关于java - struts 2中将java bean转换为json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10793887/

相关文章:

java - 用颜色填充复杂图像

java - ActiveMQ 节流消费者

java - 无法在我的车辆交易程序中销售卡车和 1 个 JUnit 错误(缺少抽象方法)

javascript - 将 d3-force-3d 计算插入 3D 图形渲染器

javascript - EsLint 需要一个标识符,但看到的是 'let'

asp.net - jquery datepicker 回发后不起作用

jquery - 当您将鼠标悬停在导航项上时,nosotroshq.com 如何创建导航效果?

java - 有没有办法获取 HashMap<String,String> 中元素的唯一 int 键?

javascript - 如何更改骨架自动加载的样式表的路径

javascript - 将图例添加到自制条形图