- 浏览: 961895 次
- 性别:
- 来自: 江西上饶
文章分类
- 全部博客 (460)
- p.spring (56)
- p.maven (20)
- p.ant (17)
- p.jee (18)
- p.jse (33)
- p.ofbiz (31)
- p.软件工程 (8)
- p.struts2 (5)
- p.hibernate (5)
- linux (25)
- 设计模式 (2)
- p.javascript (11)
- 硬件 (1)
- p.jsp (2)
- p.windows批处理 (1)
- 操作系统问题 (5)
- 算法 (1)
- p.mysql (7)
- p.sql (5)
- p.c (1)
- google产品 (0)
- 内存 (1)
- p.struts (1)
- p.freemarker (7)
- p.css (4)
- p.log4j (10)
- p.html (3)
- 淘宝产品 (0)
- 其他 (3)
- 编译器 (0)
- svn (4)
- p.spring.security (11)
- 图形 (0)
- p.xml (1)
- p.ssh (0)
- p.jquery (4)
- p.jdbc (3)
- p.flex (0)
- p.c++ (0)
- p.c#Net (0)
- p.assembly (0)
- p.sqlserver (0)
- p.其他 (3)
- p.webwork (21)
- p.wap (12)
- p.cglib (1)
- p.jee服务器 (11)
- windows (2)
- p.iphone (1)
- p.java.分布式与集群 (2)
- p.ibatis (16)
- p.eclipse (5)
- 架构 (2)
- http协议 (5)
- 我的个人标准 (2)
- 多线程 (1)
- 奇怪问题 (5)
- p.jira (13)
- p.httpclient (1)
- 服务器.apache (11)
- 安全防范 (1)
- p.PODAM (1)
- p.junit (16)
- fop (2)
- 硬盘安装 (1)
- powerdesigner (0)
- 单元测试 (1)
- apache commons (4)
- tomcat+apache集群 (10)
- 各类诡辩 (1)
- 安卓 (8)
- qvod (1)
- java编程基础知识考试考点及答案 (0)
- 工作总结 (4)
- oracle (0)
- spring的util工具 (3)
- json (2)
- maven (3)
- jms (19)
- p.bat (3)
- hadoop (2)
- git (3)
- nginx (1)
- p.移动开发 (1)
- shiro (3)
- 游戏破解 (1)
- react-native (7)
- ios开发 (1)
- webmagic (6)
- socks5 (1)
最新评论
-
weituotian:
说的不好,没人看的
公司系统中的菜单功能和权限功能 -
石不易:
非常详细的注解~
绑定端口和IP,Listen 与VirtualHost指令 -
spring_springmvc:
spring mvc demo教程源代码下载,地址:http: ...
spring mvc -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装 -
liyixing1:
PandaDONG 写道谢谢你啊,我已经下下来了,只是还有很多 ...
jira war安装
org.ofbiz.widget.screen.ScreenWidgetViewHandler
我们在使用screen widgets(小窗口)的时候是使用这个处理器处理的。
因此需要在controller.xml文件加入handler
<handler name="screen" type="view" class="org.ofbiz.widget.screen.ScreenWidgetViewHandler" />
这里的name决定了
view-map的type
这里可以在RequestHandler类得代码中看出来,ofbiz10大概是
841行,代码
ViewHandler vh = viewFactory.getViewHandler(viewMap.type);
这里根据viewMap.type(这个是type值=<view-map name="SimplestScreen" type="screen"设置的type),
它从viewFactory的handers(一个map,将hander的name作为key,实例作为value)中取出处理器,handers有一个默认指是
default=org.ofbiz.webapp.view.JspViewHandler@8202f7
如上的配置,那么还有一个就是
screen=org.ofbiz.widget.screen.ScreenWidgetViewHandler@13018ca
try {
if (Debug.verboseOn()) Debug.logVerbose("Rendering view [" + nextPage + "] of type [" + viewMap.type + "]", module);
ViewHandler vh = viewFactory.getViewHandler(viewMap.type);
vh.render(view, nextPage, viewMap.info, contentType, charset, req, resp);
} catch (ViewHandlerException e) {
Throwable throwable = e.getNested() != null ? e.getNested() : e;
throw new RequestHandlerException(e.getNonNestedMessage(), throwable);
}
现在写我们的screen了
<?xml version="1.0" encoding="UTF-8"?>
<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/widget-screen.xsd">
<screen name="SimplestScreen">
<section>
<widgets>
<label text="Simplest Screen possible in OFBiz!" />
</widgets>
</section>
</screen>
</screens>
根节点是screens
可以包含多个screen,每个screen都有name。
在controller.xml文件的handler之后写入
<!-- Request Mappings -->
<request-map uri="SimplestScreen">
<response name="success" type="view" value="SimplestScreen" />
</request-map>
<!-- end of request mappings -->
request-map 的uri决定当访问的资源(资源的解析方式在ControlServlet解释)。
当返回成功(success)的时候,就转到view,需要处理的view是叫做SimplestScreen
配置view在controller.xml
<!--这里的type就是handler 的name-->
<view-map name="SimplestScreen" type="screen"
page="component://learning/widget/LearningScreens.xml#MyScreen"></view-map>
另外这里有一个组件引用的例子,就是
page="component://learning/widget/LearningScreens.xml#MyScreen"
这里指定了资源路径是component://learning learning组件下面开始的
widget或者fail-widgets可以再包含section元素
这个时候,包含的内部的section和外部的screen使用的是同一个似有容器空间。
而
<include-screen name="SimplestScreen" />
使用的是两个不同的容器空间。
但是外部的空间在内部(include)中可以访问,如果内部空间覆盖了外部的值(这里的覆盖不是值得覆盖,而是说在内部的空间也定义了同一个名字的变量),它就访问自己的空间的变量。如果没有覆盖,它会层层往上寻找,直到找到你要访问的名字的变量,如果没找到,就是空内容了。
我们在使用screen widgets(小窗口)的时候是使用这个处理器处理的。
因此需要在controller.xml文件加入handler
<handler name="screen" type="view" class="org.ofbiz.widget.screen.ScreenWidgetViewHandler" />
这里的name决定了
view-map的type
这里可以在RequestHandler类得代码中看出来,ofbiz10大概是
841行,代码
ViewHandler vh = viewFactory.getViewHandler(viewMap.type);
这里根据viewMap.type(这个是type值=<view-map name="SimplestScreen" type="screen"设置的type),
它从viewFactory的handers(一个map,将hander的name作为key,实例作为value)中取出处理器,handers有一个默认指是
default=org.ofbiz.webapp.view.JspViewHandler@8202f7
如上的配置,那么还有一个就是
screen=org.ofbiz.widget.screen.ScreenWidgetViewHandler@13018ca
try {
if (Debug.verboseOn()) Debug.logVerbose("Rendering view [" + nextPage + "] of type [" + viewMap.type + "]", module);
ViewHandler vh = viewFactory.getViewHandler(viewMap.type);
vh.render(view, nextPage, viewMap.info, contentType, charset, req, resp);
} catch (ViewHandlerException e) {
Throwable throwable = e.getNested() != null ? e.getNested() : e;
throw new RequestHandlerException(e.getNonNestedMessage(), throwable);
}
现在写我们的screen了
<?xml version="1.0" encoding="UTF-8"?>
<screens xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://www.ofbiz.org/dtds/widget-screen.xsd">
<screen name="SimplestScreen">
<section>
<widgets>
<label text="Simplest Screen possible in OFBiz!" />
</widgets>
</section>
</screen>
</screens>
根节点是screens
可以包含多个screen,每个screen都有name。
在controller.xml文件的handler之后写入
<!-- Request Mappings -->
<request-map uri="SimplestScreen">
<response name="success" type="view" value="SimplestScreen" />
</request-map>
<!-- end of request mappings -->
request-map 的uri决定当访问的资源(资源的解析方式在ControlServlet解释)。
当返回成功(success)的时候,就转到view,需要处理的view是叫做SimplestScreen
配置view在controller.xml
<!--这里的type就是handler 的name-->
<view-map name="SimplestScreen" type="screen"
page="component://learning/widget/LearningScreens.xml#MyScreen"></view-map>
另外这里有一个组件引用的例子,就是
page="component://learning/widget/LearningScreens.xml#MyScreen"
这里指定了资源路径是component://learning learning组件下面开始的
widget或者fail-widgets可以再包含section元素
这个时候,包含的内部的section和外部的screen使用的是同一个似有容器空间。
而
<include-screen name="SimplestScreen" />
使用的是两个不同的容器空间。
但是外部的空间在内部(include)中可以访问,如果内部空间覆盖了外部的值(这里的覆盖不是值得覆盖,而是说在内部的空间也定义了同一个名字的变量),它就访问自己的空间的变量。如果没有覆盖,它会层层往上寻找,直到找到你要访问的名字的变量,如果没找到,就是空内容了。
发表评论
-
EL表达式,ognl表达式对集合过滤和投影
2013-11-23 11:48 1213GONL<s:property value=" ... -
整站国际化方案
2012-11-28 17:46 1115当前常见的实现方式,主要由两种方案实现 1.通过locale ... -
form Display元素
2011-09-15 14:46 1340对于display元素,在代码 MacroFormRender ... -
tomcat中运行ofbiz
2011-09-07 17:09 1128http://blog.csdn.net/kongqz/art ... -
string-map-prefix string-list-suffix
2011-08-31 00:54 1669一般service都是用在event ... -
ofbiz文档
2011-08-29 18:07 1206http://ofbiz.apache.org/docs/ -
关于ofbiz-component.xml文件中的resource-loader
2011-08-28 19:44 1331寻找文件的方式最后是通过ComponentConfig.jav ... -
ofbiz中几个占位符
2011-08-28 19:04 1105OFBiz认为一些键名为反馈消息的占位符。 进入Screen ... -
ofbiz中各类安全代码解析
2011-08-28 18:49 1767security.hasPermission方法 publi ... -
OFBizCMS
2011-08-28 17:01 1337OFBizCMS是基于OFBiz框架的CMS系统,集合了邮件, ... -
UserLogin Party Person PartyGroup四个model关系
2011-08-27 00:05 1938只需从userloginmodel入手 其model定义是 & ... -
通过jdbc sql调用,并将结果转化成GenericValue
2011-08-26 23:48 18881.查看GenericDelegator的代码,发现代码最后是 ... -
EntityUtil
2011-08-26 23:13 1253排序,通常有的时候我们不希望通过order by来排序查询。而 ... -
关于实体过期快捷方式
2011-08-26 22:40 1298在java代码中查询实体未过期的快捷方式是 EntityCon ... -
ofbiz各类问题
2011-08-26 10:58 11541.eclipse下面运行出现 Exception in th ... -
screen,menu,form等里面的action
2011-08-25 19:00 1029以screen为例 其他类似 screen的action内容 ... -
controlservlet
2011-08-24 22:19 1780control servlet 需要为他在web.xml中指定 ... -
MultiForm表单后台处理方式
2011-08-24 15:06 1767首先确定下的是MultiForm的表单命名是FieldName ... -
event java
2011-08-24 12:32 1087controller.xml <handler nam ... -
scree 中的几个内置对象
2011-08-24 12:27 1232· screens是一个org.ofbiz.widget. ...
相关推荐
标题中的“扩展你的web app以screen-widget, decorator, and actions”指的是在Web应用程序开发中,通过使用特定的技术和设计模式来增强用户界面和交互性的方法。以下是对这些概念的详细解释: 1. Screen Widget...
本教程基于“Pro Android学习”系列,重点讲解如何创建一个简单的Home Screen Widget。我们将参考提供的链接:http://blog.csdn.net/flowingflying/article/details/6212512,该链接可能包含更详细的步骤和源代码...
Android home screen widget to display current weather alerts from the US National Weather Service I created this because I wanted a tablet on the wall in my kitchen to display weather alerts on the ...
This is a homescreen widget and Android Wear watch face that displays a 12-at-the-top 24 hour analog clock. Noon is at the top, so that the hour hand mimics the path of the sun. In addition to the ...
Android桌面Widget,也称为Home Screen Widget,允许开发者在用户的主屏幕上放置可自定义的小部件,展示实时信息,如天气、新闻标题或音乐控制。Widget通过AppWidgetProvider类与系统进行交互,并可以利用...
4. **screenwidget.h**:这是screenwidget类的头文件,定义了类的结构和接口。 5. **frmscreenwidget.h**:对应frmscreenwidget类的头文件,可能包含了UI类的定义,如窗口布局、控件声明等。 6. **screenwidget.pro*...
Widget for Trello is an android home screen widget. Choose and display lists from your Trello boards on your home screen for a quick glance at your cards. Tools and Tech Trello's API Volley - ...
Todo Agenda is a home screen widget for your Android device. It displays a list of upcoming calendar events so that you can easily have a glimpse at your appointments. Want to contribute to the ...
1. **View Handler和Screen Widget Context**:这是MVC模式中的View层,负责处理用户界面和交互。View Handler解析请求,创建Screen Widget Context,用于在视图中传递数据和控制流。 2. **Service Engine**:服务...
9. **Screen Widget: Definition**:屏幕组件定义,用于构建用户界面。 10. **Screen Section Condition**:屏幕组件的条件部分,用于控制显示逻辑。 11. **Screen Section Actions**:屏幕组件的动作部分,用于执行...
- **ScreenWidget**:屏幕布局定义,在 ***Screens.xml** 文件中定义。 - **FormWidget**:表单定义,在 ***Forms.xml** 文件中定义。 - **TreeWidget**:树状结构布局定义,在 ***Trees.xml** 文件中定义。 - *...
开发者可以基于提供的screenwidget文件进行二次开发,根据项目需求添加更多功能,比如支持拖放保存、截图编辑等。对于那些需要在资源有限的环境中实现截图功能的项目来说,这是一个非常实用的工具。
4. **界面设计**:使用Screen Widget和Form Widget等工具,开发者可以构建基于Web的用户界面,实现业务流程的可视化操作。 5. **国际化与本地化**:OFBiz支持多语言环境,通过资源文件管理翻译内容,满足全球化需求...
- **Screen Widget**:屏幕小部件主要用于界面展示,它们可以组合成复杂的用户界面。通过定义屏幕小部件,开发者可以轻松地构建出直观且交互性强的用户界面。 #### 四、总结 通过对OFBiz程序结构的详细解析,我们...
android:widgetCategory="home_screen"> </appwidget-provider> ``` 然后,在res/layout目录下创建Widget的布局文件(如:widget_layout.xml)。这里定义了Widget在桌面上显示的UI元素,可以包含Button或其他View...
android:widgetCategory="home_screen"> </appwidget-provider> ``` 接着,在`res/layout`目录下创建`widget_layout.xml`,设计你的小部件布局。在这个音乐播放器示例中,可能包含播放/暂停按钮、上一曲/下一曲...
可以注册`BroadcastReceiver`监听系统广播,如`ACTION_SCREEN_ON`和`ACTION_SCREEN_OFF`,以便在屏幕开启和关闭时做出相应反应。同时,要处理`Intent.ACTION_HEADSET_PLUG`广播,检测耳机插入状态,以提供适当的音效...
android:widgetCategory="home_screen"> </appwidget-provider> ``` 这里设置了AppWidget的最小尺寸、更新周期等属性。 4. **实现AppWidget提供者** 创建一个继承自`AppWidgetProvider`的类,例如`...
android:widgetCategory="home_screen"> </appwidget-provider> ``` 接下来,我们创建`app_widget_layout.xml`布局文件,设计AppWidget的外观。对于"FlashLight" AppWidget,我们可能只需要一个按钮,点击后开启或...