当前位置: 首页 > news >正文

哪些编程语言适合网站开发中国品牌加盟网官网

哪些编程语言适合网站开发,中国品牌加盟网官网,com域名多少钱一年,制作招聘海报的app在这篇文章中#xff0c;您将看到如何结合PrimeFaces和OmniFaces获得可缓存的图表。 为了使事情变得简单#xff0c;我们将使用PrimeFaces 折线图。 对于这种图表#xff0c;我们可以在页面中使用p#xff1a;chart /标记和一个简单的托管bean。 因此#xff0c;在… 在这篇文章中您将看到如何结合PrimeFaces和OmniFaces获得可缓存的图表。 为了使事情变得简单我们将使用PrimeFaces 折线图。 对于这种图表我们可以在页面中使用pchart /标记和一个简单的托管bean。 因此在页面中我们可以有 p:chart idsomeChartId typelinemodel#{chartView.lineModel}styleheight:300px;width:600px;/ ChartView可以编写如下 Named ViewScoped public class ChartView implements Serializable {private LineChartModel lineModel;PostConstructpublic void init() {createLineModels();}private void createLineModels() {lineModel initLinearModel();lineModel.setTitle(Linear Chart);lineModel.setLegendPosition(e);lineModel.setZoom(true);Axis yAxis lineModel.getAxis(AxisType.Y);yAxis.setMin(0);yAxis.setMax(10);}private LineChartModel initLinearModel() {LineChartModel model new LineChartModel();LineChartSeries series1 new LineChartSeries();series1.setLabel(Series 1);Random rnd new Random();series1.set(rnd.nextInt(10), rnd.nextInt(10));series1.set(rnd.nextInt(10), rnd.nextInt(10));series1.set(rnd.nextInt(10), rnd.nextInt(10));series1.set(rnd.nextInt(10), rnd.nextInt(10));series1.set(rnd.nextInt(10), rnd.nextInt(10));LineChartSeries series2 new LineChartSeries();series2.setLabel(Series 2);series2.set(rnd.nextInt(10), rnd.nextInt(10));series2.set(rnd.nextInt(10), rnd.nextInt(10));series2.set(rnd.nextInt(10), rnd.nextInt(10));series2.set(rnd.nextInt(10), rnd.nextInt(10));model.addSeries(series1);model.addSeries(series2);return model;}public LineChartModel getLineModel() {return lineModel;} } 此代码将产生一个简单的折线图如下图 现在让我们假设在应用程序运行期间该图表会定期更新或重新创建我们将通过随机序列值和“ Refresh按钮对此进行模拟。 每次发生这种情况时我们都会丢失当前图表。 但是缓存如保存某些图表可能很有用并且有可能稍后在当前会话对于属于某些用户的图表/应用程序对于所有用户通用的图表中加载它们。 为了完成此任务我们可以使用OmniFaces 缓存组件。 基本上此组件在OmniFaces Showcase和Mastering OmniFaces书中都有很好的描述但主要思想是 Cache组件通过以下方式向JSF页面作者公开 o:cache标记。 Cache为“渲染响应”阶段生成的标记实现了服务器端缓存机制。 Cache在“渲染响应”阶段执行操作。 缓存的标记存储在OmniFaces生成的密钥下或者通过可选的o:cache密钥属性指示。 可以通过可选的o:cache禁用的flag属性禁用每个请求的o:cache 。 可以通过o:cache reset flag属性来重新缓存已缓存的条目。 默认情况下缓存的数据存储在会话范围内也支持应用程序范围。 例如从JSF页面作者的角度来看我们可以表明我们想在键foo下重新缓存一块标记如下所示 o:cache idcacheId keyfoo disabledfalse resettrue ... // the markup produced for this snippet of code will be cached /o:cache 显然在此示例中 disabled属性可以跳过因为那是其隐式值。 如果还跳过了key 则OmniFaces将生成一个。 如果跳过了reset 则不会重新缓存标记。 既然我们要必须决定哪些图表缓存和负载的可能性/删除某个图表从缓存中我们不能简单地做只有这个 o:cache idcacheId p:chart idsomeChartId typelinemodel#{chartView.lineModel}styleheight:300px;width:600px;/ /o:cache 基本上这将缓存第一个图表并且在每次回发时将从缓存中为该图表提供服务。 因此一种快速的方法将包括以编程方式处理o:cache属性。 就像我在上面说的 Cache在“渲染响应”阶段采取行动。 这意味着我们可以从我们的控制 ChartView bean在实际发生Cache之前是Cache组件。 此实现的核心将包含以下private方法该方法允许我们以编程方式配置Cache组件 private void configureCache(String key, boolean disabled, boolean reset) {Cache cache Components.findComponent(cacheId);cache.setDisabled(disabled);cache.setReset(reset);cache.setKey(key); } 现在我们将添加一对一的控制缓存所需的UI。 首先我们添加一个标记为“ 刷新。 实际上每次我们按下此按钮时都会生成一个新图表新数据。 这是用于模拟图表更新。 h:commandButton action#{chartView.redrawAction()} valueRefresh/ redrawAction()确保新图表不被缓存因此缓存被禁用并且密钥不相关 public void redrawAction() {configureCache(none, true, false);createLineModels(); } 此外我们添加了一个名为Save的按钮。 按下此按钮时当前图表将缓存在key_ random-number类型的键下在实际情况下您可能希望允许用户提供该键作为图表标题。 该key将在代表已保存图表的列表中向用户公开 h:commandButton action#{chartView.saveChart()} valueSave/ saveChart()方法启用缓存并生成一个新密钥。 密钥存储在列表中 private ListString keys; ... public void saveChart() {String key key_ new Random().nextInt(1000);configureCache(key, false, true);keys.add(key); } 接下来我们列出缓存的键和一个标记为Load的按钮。 用户可以选择一个键然后单击 加载按钮以加载缓存的图表 h:selectOneMenu value#{chartView.selected}f:selectItem itemLabelSelect a chart ... noSelectionOptiontrue/f:selectItems value#{chartView.keys} vart itemLabel#{t} itemValue#{t}/ /h:selectOneMenuh:commandButton valueLoad Chart action#{chartView.loadChart()}disabled#{chartView.keys.size() eq 0}/ loadChart()是 public void loadChart() {if (selected ! null) {configureCache(selected, false, false);} } 最后我们添加一个标记为Delete的按钮该按钮将从缓存中删除所选图表 h:commandButton valueDelete Chart action#{chartView.deleteChart()}disabled#{chartView.keys.size() eq 0}/ | 并且 deleteChart()是 public void deleteChart() {if (selected ! null) {CacheFactory.getCache(Faces.getContext(), session).remove(selected);keys.remove(selected);configureCache(none, true, false); resetLineModels();} }private void resetLineModels(){ lineModel.getSeries().clear(); } 注意这里我们如何使用CacheFactory通过密钥从缓存中删除条目。 这是一个提示性屏幕截图 完整的应用程序可在此处获得 。 翻译自: https://www.javacodegeeks.com/2015/11/programmatically-caching-primefaces-charts-via-omnifaces-cache-component.html
http://www.zqtcl.cn/news/365312/

相关文章:

  • 岳阳市住房和城乡建设局网站上海专业网站建设网
  • 营销型网站建设设定包括哪些方面网站建设后的心得
  • 建立网站来网上销售的英文潢川城乡建设局网站
  • 仿站建站教程网站怎么接广告
  • 免费下载代码项目的网站长春网站建设找新生科技
  • 博兴县建设局网站做网站要用什么服务器吗
  • 成都中小企业网站建设公司怎么挑选网站建设公司
  • 万源网站建设在ppt里面做网站链接
  • 做网站时怎么添加动态信息中铁航空港建设集团网站
  • 文化礼堂建设情况网站网站建设运行
  • 自己做网站很难asp网站开发四酷全书:新闻_论坛_电子商城_博客
  • 网站建设入什么会计科目从网络安全角度考量请写出建设一个大型电影网站规划方案
  • 品牌建设+网站网站建设 淘宝客末班
  • 建设商业网站学校建设门户网站的好处
  • 男女朋友在一起做那个的网站公司建设网站
  • 营销型网站的类型有哪些相册网站怎么做
  • 河南建设监理协会网站电话erp管理系统官网
  • 视频网站seo实战做企业网站一般用什么服务器
  • icp备案 网站负责人免费直播sdk
  • 网站制作和如何推广动画专业学什么
  • 北京一家专门做会所的网站基于ssh框架的网站开发流程
  • 可以在自己的电脑上做网站吗陕西商城网站建设
  • 深圳网站建设工作室郴州有什么好玩的地方
  • 用dw做的网站怎么发到网上竹妃怎么在公众号里做网站
  • 杭州网站优化搜索黑龙江公共资源交易网官网
  • 动易网站 首页模板修改平台网站是什么
  • 营销网站更受用户欢迎的原因是英文网站的建设意义
  • 学网站建设基础河北省建设网站的网站首页
  • 铜仁市住房和城乡建设部网站延边有没有做网站的
  • 如何做ppt的模板下载网站移动端网站的优点