gboat2.base.view
类 GboatViewUtil

java.lang.Object
  继承者 gboat2.base.view.GboatViewUtil

public final class GboatViewUtil
extends Object

平台的视图展现工具类。

Struts2常量名称 默认值 描述
struts.ui.templateDir template 标签模板文件存放的根目录
struts.ui.theme xhtml 标签的主题(对应 struts.ui.templateDir 下的文件夹名称)
struts.ui.templateSuffix ftl 标签模板文件的后缀名, 可选值:ftl, vm, jsp
struts.ui.theme.expansion.token ~~~ Change this to use a different token to indicate template theme expansion

从以下版本开始:
3.0
作者:
何明旺

字段摘要
static String GBOAT_UI_TAG_BLOCK
           
static String PAGE_READONLY_KEY
           
 
构造方法摘要
GboatViewUtil()
           
 
方法摘要
static void addReadonlyParameter(org.apache.struts2.components.Component component, javax.servlet.http.HttpServletRequest request)
          如果组件没有设置 readonly 参数, 则检查是否设置了全局的页面只读参数,如果设置了全局的页面只读,则为当前控件也加上 readonly 参数
static org.apache.struts2.components.Component getComponent(Class<?> clazz, com.opensymphony.xwork2.util.ValueStack stack, javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse res)
          获取 JSP 自定义标签或 Freemarker 自定义指令对应的组件类的实例对象。
static String getComponentClass(Class<?> clazz)
          获取 JSP 自定义标签或 Freemarker 自定义指令对应的组件类的名称,规则为取得 JSP 自定义标签或 Freemarker 自定义指令实现类所在包的父包下名称为 components 的子包中类名为JSP 自定义标签或 Freemarker 自定义指令实现类的名称移除尾部“Tag”或“Model”后的字符串,如: [JSP 标签类] --> [组件类] ButtonTag --> Button jsp.ButtonTag --> components.Button gboat2.jsp.ButtonTag --> gboat2.components.Button gboat2.base.view.jsp.ButtonTag --> gboat2.base.view.components.Button [Freemarker 指令类] --> [组件类] ButtonModel --> Button freemarker.ButtonModel --> components.Button gboat2.freemarker.ButtonModel --> gboat2.components.Button gboat2.base.view.freemarker.ButtonModel --> gboat2.base.view.components.Button
static String getOverrideVariableName(String name)
          代码块重写时,获取代码块保存在 request 对象中的 key
static void populateParams(org.apache.struts2.views.jsp.ComponentTagSupport uiTag, org.apache.struts2.components.Component component)
          将 UI 标签的属性值复制给 Component
static com.fasterxml.jackson.databind.node.ArrayNode string2ArrayNode(String str)
          将字符串以英文逗号(,)拆分成字符串数组后,再转换为 ArrayNode 对象
static com.fasterxml.jackson.databind.node.ArrayNode string2ArrayNode(String str, com.fasterxml.jackson.databind.ObjectMapper om)
          将字符串以英文逗号(,)拆分成字符串数组后,再转换为 ArrayNode 对象
static com.fasterxml.jackson.databind.node.ArrayNode string2ArrayNode(String str, com.fasterxml.jackson.databind.ObjectMapper om, String delimiterRegex)
          将字符串转换为 ArrayNode 对象
static String toPascalCase(String str)
          将驼峰命名法的字符串转换为帕斯卡命名法的形式。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

PAGE_READONLY_KEY

public static final String PAGE_READONLY_KEY
另请参见:
常量字段值

GBOAT_UI_TAG_BLOCK

public static String GBOAT_UI_TAG_BLOCK
构造方法详细信息

GboatViewUtil

public GboatViewUtil()
方法详细信息

getOverrideVariableName

public static String getOverrideVariableName(String name)
代码块重写时,获取代码块保存在 request 对象中的 key

参数:
name - 代码块的名称
返回:

toPascalCase

public static String toPascalCase(String str)
将驼峰命名法的字符串转换为帕斯卡命名法的形式。

操作步骤如下:

  1. 将字符串的首字母改为小写
  2. 在所有大写字母前面加上连字符“-”,并将其改为小写

参数:
str -
返回:
字符串的帕斯卡命名法形式
 Input --> input
 InputField --> input-field
 GboatInputField --> gboat-input-field
 Gboat2InputField --> gboat2-input-field
 UIBbean --> u-i-bean
 

populateParams

public static void populateParams(org.apache.struts2.views.jsp.ComponentTagSupport uiTag,
                                  org.apache.struts2.components.Component component)
将 UI 标签的属性值复制给 Component

参数:
component - UI 标签对应的组件实例

string2ArrayNode

public static com.fasterxml.jackson.databind.node.ArrayNode string2ArrayNode(String str)
将字符串以英文逗号(,)拆分成字符串数组后,再转换为 ArrayNode 对象

参数:
str - 要进行转换的字符串
返回:
转换后的 ArrayNode 对象,如果 str 为 null,则返回 null
另请参见:
string2ArrayNode(String, ObjectMapper)

string2ArrayNode

public static com.fasterxml.jackson.databind.node.ArrayNode string2ArrayNode(String str,
                                                                             com.fasterxml.jackson.databind.ObjectMapper om)
将字符串以英文逗号(,)拆分成字符串数组后,再转换为 ArrayNode 对象

参数:
str - 要进行转换的字符串
om - 用于创建 ArrayNode 实例的 ObjectMapper 对象,可以通过 JsonUtil.generateMapper() 获得
返回:
转换后的 ArrayNode 对象,如果 str 为 null,则返回 null
另请参见:
string2ArrayNode(String, ObjectMapper, String)

string2ArrayNode

public static com.fasterxml.jackson.databind.node.ArrayNode string2ArrayNode(String str,
                                                                             com.fasterxml.jackson.databind.ObjectMapper om,
                                                                             String delimiterRegex)
将字符串转换为 ArrayNode 对象

参数:
str - 要进行转换的字符串
om - 用于创建 ArrayNode 实例的 ObjectMapper 对象,可以通过 JsonUtil.generateMapper() 获得
delimiterRegex - 分隔符正则表达式,将通过 str.split(delimiterRegex) 将 str 拆分成一个字符串数组
返回:
转换后的 ArrayNode 对象,如果 str 为 null,则返回 null

getComponentClass

public static String getComponentClass(Class<?> clazz)
获取 JSP 自定义标签或 Freemarker 自定义指令对应的组件类的名称,规则为取得 JSP 自定义标签或 Freemarker 自定义指令实现类所在包的父包下名称为 components 的子包中类名为JSP 自定义标签或 Freemarker 自定义指令实现类的名称移除尾部“Tag”或“Model”后的字符串,如:
 [JSP 标签类] --> [组件类]
 ButtonTag --> Button
 jsp.ButtonTag --> components.Button
 gboat2.jsp.ButtonTag --> gboat2.components.Button
 gboat2.base.view.jsp.ButtonTag --> gboat2.base.view.components.Button
 [Freemarker 指令类] --> [组件类]
 ButtonModel --> Button
 freemarker.ButtonModel --> components.Button
 gboat2.freemarker.ButtonModel --> gboat2.components.Button
 gboat2.base.view.freemarker.ButtonModel --> gboat2.base.view.components.Button
 

参数:
clazz - 自定义标签或 Freemarker 自定义指令对应的组件类
返回:
对应的组件类名

getComponent

public static org.apache.struts2.components.Component getComponent(Class<?> clazz,
                                                                   com.opensymphony.xwork2.util.ValueStack stack,
                                                                   javax.servlet.http.HttpServletRequest req,
                                                                   javax.servlet.http.HttpServletResponse res)
获取 JSP 自定义标签或 Freemarker 自定义指令对应的组件类的实例对象。先通过 getComponentClass(Class) 方法获取到对应组件的类名,然后再创建其实例对象。

参数:
clazz - 自定义标签或 Freemarker 自定义指令对应的组件类
stack - 值栈
req - HTTP 请求
res - HTTP 响应
返回:
JSP 标签对应的组件实例
另请参见:
getComponentClass(Class)

addReadonlyParameter

public static void addReadonlyParameter(org.apache.struts2.components.Component component,
                                        javax.servlet.http.HttpServletRequest request)
如果组件没有设置 readonly 参数, 则检查是否设置了全局的页面只读参数,如果设置了全局的页面只读,则为当前控件也加上 readonly 参数

参数:
component - Struts2 组件
request - HTTP 请求


Copyright © 2014 广联达软件股份有限公司(Glodon Software Co., Ltd.). All rights reserved.