import java.util.HashMap;import java.util.Map;import javax.persistence.Id;import javax.persistence.MappedSuperclass;import javax.persistence.Transient;import org.codehaus.jackson.annotate.JsonIgnore; @MappedSuperclasspublic class MenuDefinition { /** * menu's unique id. ** 建议使用包格式 *
*/ String id; /** * 菜单显示标签,一个简短的字符串. */ String label; /** * 与上一级菜单的关联. 这是一个弱关联的关系。除了参考id以外还能够使用位置表达式。 * */ String parentId; /** * 同级菜单排序,二维表格没有顺序值,所以需要记录,默认值应该是0. */ Integer seq = 0; /** * 描述字段,详细描述label。. * */ String tooltip; /** * 菜单功能键,一个标准的URI表达式。. */ String URI; /** * 菜单图标地址,URL表达式。. */ String icon; /** * 类别,用来对菜单子类做区分。. */ String type; /** * 上下文帮助id.一个字符串. */ String helpContextId; /** * Available,一个条件表达式,用来计算菜单在当前的上下文中是否能够显示。. */ String available; /** * 助记符,单个字母的快捷键提示。. */ String mnemonic; /** * 可扩展的字段. * */ Mapextra = new HashMap (5); public MenuDefinition() { } /** * Gets the available,一个条件表达式,用来计算菜单在当前的上下文中是否能够显示。. * * @return the available,一个条件表达式,用来计算菜单在当前的上下文中是否能够显示。 */ public String getAvailable() { return available; } /** * Sets the available,一个条件表达式,用来计算菜单在当前的上下文中是否能够显示。. * * @param available * the new available,一个条件表达式,用来计算菜单在当前的上下文中是否能够显示。 */ public void setAvailable(String available) { this.available = available; } /** * Gets the menu's unique id. * * @return the menu's unique id */ @Id public String getId() { return id; } /** * Sets the menu's unique id. * * @param id * the new menu's unique id */ public void setId(String id) { this.id = id; } /** * Gets the 菜单显示标签,一个简短的字符串. * * @return the 菜单显示标签,一个简短的字符串 */ public String getLabel() { return label; } /** * Sets the 菜单显示标签,一个简短的字符串. * * @param label * the new 菜单显示标签,一个简短的字符串 */ public void setLabel(String label) { this.label = label; } /** * Gets the 与上一级菜单的关联. * * @return the 与上一级菜单的关联 */ public String getParentId() { return parentId; } /** * Sets the 与上一级菜单的关联. * * @param parentId * the new 与上一级菜单的关联 */ public void setParentId(String parentId) { this.parentId = parentId; } /** * Gets the 同级菜单排序,二维表格没有顺序值,所以需要记录。. * * @return the 同级菜单排序,二维表格没有顺序值,所以需要记录。 */ public int getSeq() { return seq; } /** * Sets the 同级菜单排序,二维表格没有顺序值,所以需要记录。. * * @param seq * the new 同级菜单排序,二维表格没有顺序值,所以需要记录。 */ public void setSeq(Integer seq) { if (seq != null) { this.seq = seq; } } /** * Sets the 同级菜单排序,二维表格没有顺序值,所以需要记录。. * * @param seq * the new 同级菜单排序,二维表格没有顺序值,所以需要记录。 */ @JsonIgnore public void setSeq(int seq) { this.seq = seq; } /** * Gets the 描述字段,详细描述label。. * * @return the 描述字段,详细描述label。 */ public String getTooltip() { return tooltip; } /** * Sets the 描述字段,详细描述label。. * * @param tooltip * the new 描述字段,详细描述label。 */ public void setTooltip(String tooltip) { this.tooltip = tooltip; } /** * Gets the 菜单功能键,一个标准的URI表达式。. * * @return the 菜单功能键,一个标准的URI表达式。 */ public String getUri() { return URI; } /** * Sets the 菜单功能键,一个标准的URI表达式。. * * @param getURI * the new 菜单功能键,一个标准的URI表达式。 */ public void setUri(String getURI) { this.URI = getURI; } /** * Gets the 菜单图标地址,URL表达式。. * * @return the 菜单图标地址,URL表达式。 */ public String getIcon() { return icon; } /** * Sets the 菜单图标地址,URL表达式。. * * @param icon * the new 菜单图标地址,URL表达式。 */ public void setIcon(String icon) { this.icon = icon; } /** * Gets the 类别,用来对菜单子类做区分。. * * @return the 类别,用来对菜单子类做区分。 */ public String getType() { return type; } /** * Sets the 类别,用来对菜单子类做区分。. * * @param type * the new 类别,用来对菜单子类做区分。 */ public void setType(String type) { this.type = type; } /** * Gets the 上下文帮助id. * * @return the 上下文帮助id */ public String getHelpContextId() { return helpContextId; } /** * Sets the 上下文帮助id. * * @param helpContextId * the new 上下文帮助id */ public void setHelpContextId(String helpContextId) { this.helpContextId = helpContextId; } /** * Gets the 可扩展的字段. * * @return the 可扩展的字段 */ @Transient public Map getExtra() { return extra; } /** * Sets the 可扩展的字段. * * @param extra * the new 可扩展的字段 */ public void setExtra(Map extra) { this.extra = extra; } /** * Gets the 助记符,单个字母的快捷键提示。. * * @return the 助记符,单个字母的快捷键提示。 */ public String getMnemonic() { return mnemonic; } /** * Sets the 助记符,单个字母的快捷键提示。. * * @param mnemonic * the new 助记符,单个字母的快捷键提示。 */ public void setMnemonic(String mnemonic) { this.mnemonic = mnemonic; }}
package com.lee.mvc.core.menu.jpa;import java.io.IOException;import java.util.Map;import javax.persistence.AttributeOverride;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Table;import org.codehaus.jackson.JsonGenerationException;import org.codehaus.jackson.JsonParseException;import org.codehaus.jackson.map.JsonMappingException;import org.codehaus.jackson.map.ObjectMapper;import com.lee.mvc.core.menu.MenuDefinition;@Entity(name="menuDefinitionJpa")@Table(name = "jmoco_ui_menu")@AttributeOverride(name = "extra", column = @Column(name = "extra"))public class MenuDefinitionJpa extends MenuDefinition { ObjectMapper objectMapper = new ObjectMapper(); /** * 返回扩展JSON字段,如果解析异常,就返回“{}” * * @return */ @Column(name = "extra") public String getExtraJsonString() { if (getExtra().size() > 0) { try { return objectMapper.writeValueAsString(getExtra()); } catch (JsonGenerationException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JsonMappingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } else { return "{}"; } return null; } /** * 设置扩展的JSNO字符串。 * * @param json */ public void setExtraJsonString(String json) { if (json == null || "".equals(json)) { } else { try { @SuppressWarnings("unchecked") MapreadValue = objectMapper.readValue(json, Map.class); setExtra(readValue); } catch (JsonParseException e) { e.printStackTrace(); } catch (JsonMappingException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { } } }}