`

Wicket2.0新功能预览:通过Html配置控件

阅读更多
Wicket一向遵循一个原则--"约定重于配置",所以它一般情况下是通过规则来处理各种情况,但是不可否认的是,配置永远有它的重要性,完全通过规则来完成功能并不能满足所有的需求,所以在Wicket2.0中添加了配置方面的内容,可喜的是,新引入的配置功能并不复杂,也没有引入新的配置文件,而是通过Html来完成。
来看一下如下的一段Html代码:

manage
这是一个功能连接,如果用户已经登录成功,而且是管理员,则通过点击这个连接可以管理系统,但是如果没有登录就不允许这个连接出现。在1.X要通过在代码中编写相应的处理逻辑,将角色写死在代码中,如果以后出现需求上的变改,就需要修改代码,会比较麻烦(当然也可以写在配置文件中,然后再读取,但这样会引入新的配置文件,也比较麻烦)。在2.0中就可以将角色信息写在Html标签的属性中,这样就可以通过代码取得相关的信息,避免了硬编码。
下面是2.0风格的标签定义:

manage

这样开发人员就可以在代码中通过控件的getMarkupAttributes()取得所有在Html中定义的各种扩展属性,得知当前连接需要manager或者admin角色才能使用,如果出现需求变改,就不再需要更改代码,只需要修改相应的Html的role属性就可以完成功能的修改。而且这种非标签属性的添加,并不影响美工MM使用可视化设计器设计Html页面。
这样在不引入配置文件的前提下,使得Wicket也支持配置,可以想见,这个功能将有效的增强Wicket的灵活性,并有效的简化代码开发。
通过在Html中引入属性作为配置项,可以更加高效的完成以下功能:
控制对象的输出,如通过属性指定日期的输出格式。
通过属性编写表达式,来定制输出条件和样式等信息。
更多的功能还在探索中......
分享到:
评论
11 楼 hanfeng 2007-06-21  
wicket是使用HTML格式做配置文件,但这个文件在客户端是看不到源码的(像jsp一样),更没有办法修改了。
10 楼 wl95421 2007-05-14  
就算你看到了role这个属性
又有什么意义呢?

首先你必须这个角色才能看到内容,即使你修改了html,也不可能将它上传到WEB-INF\下面吧

所以无论是否可以看到这个内容,都不会影响系统完全。
9 楼 sorphi 2007-05-11  
Frederick 写道
这种配置方式会否带来一个后果,即可以通过获取页面的html源代码,然后修改其role熟悉的方式来hack系统。比如,本来某个用户只有manager角色,而没有admin的角色,其html如下:
<br />
<a href="#" wicket:id="manageLink" role="manager,admin">manage</a> <br />
<br />

现在,我通过浏览器获取其页面源代码后,手工把这一段修改为:
<br />
<a href="#" wicket:id="manageLink" role="manager,admin">manage</a> <br />
<br />


那位解答一下,我现在正在考察是否要使用Wicket来开发我们公司的项目。



你在浏览器中输入

http://host/hackme.jsp,一般看到的是html内容还是jsp源代码?

8 楼 Frederick 2007-05-11  
不好意思,搞错了,只有manager角色的代码应该是:
<br />  
<a href="#" wicket:id="manageLink" role="manager">manage</a> <br />  
<br />  


手工hack以后的代码应该是:
<br />  
<a href="#" wicket:id="manageLink" role="manager,admin">manaer</a> <br />  
<br /> 
7 楼 Frederick 2007-05-11  
这种配置方式会否带来一个后果,即可以通过获取页面的html源代码,然后修改其role熟悉的方式来hack系统。比如,本来某个用户只有manager角色,而没有admin的角色,其html如下:
<br />
<a href="#" wicket:id="manageLink" role="manager,admin">manage</a> <br />
<br />

现在,我通过浏览器获取其页面源代码后,手工把这一段修改为:
<br />
<a href="#" wicket:id="manageLink" role="manager,admin">manage</a> <br />
<br />


那位解答一下,我现在正在考察是否要使用Wicket来开发我们公司的项目。
6 楼 strongkill 2007-03-31  
我一直都在struts.覺得還可以啊.就是比較麻煩.
現在2.0應該簡單了很多.可現有的專案都不可能轉到2.0.
5 楼 xmlspy 2007-03-30  
aninfeel 写道
为什么那么多人用struts,我看过spring mvc,看过jsf,只有看struts的时候总是一头露水,郁闷死了



哈哈哈,  我也一直用spring mvc,从来没用过struts,
4 楼 minimu 2007-03-30  
这样做侵入性太强了吧
3 楼 aninfeel 2007-03-25  
为什么那么多人用struts,我看过spring mvc,看过jsf,只有看struts的时候总是一头露水,郁闷死了
2 楼 icefire 2007-01-12  
期待2.0能被大量应用!
1 楼 netfly 2007-01-12  
引用
这样开发人员就可以在代码中通过控件的getMarkupAttributes()取得所有在Html中定义的各种扩展属性,得知当前连接需要manager或者admin角色才能使用,如果出现需求变改,就不再需要更改代码,只需要修改相应的Html的role属性就可以完成功能的修改。

请问是否支持可编程配置?因为权限系统是我自己开发的。

相关推荐

    wicket简单实例

    **Wicket简单实例详解** Wicket是一款开源的Java Web应用程序框架,它强调组件化和模型-视图-控制器(MVC)的设计模式。...在实践中不断探索和尝试,你将对Wicket有更深入的理解,并能开发出功能丰富的Web应用。

    Wicket开发指南

    ### Wicket开发指南知识点 #### 1....- **本地化设置**:通过配置文件指定不同的语言环境。 以上是对《Wicket开发指南》中关键知识点的详细总结,旨在帮助读者快速掌握Wicket的核心概念和技术要点。

    wicket-spring-boot:使用 spring boot 和 servlet 3.0 的 Wicket 7 应用程序。 仅基于 Java 的配置

    Wicket / Spring Boot / 基于纯 Java 的配置 Wicket 应用程序模板使用: 检票口 7(快照) Maven Spring boot(仅限java配置) Servlet 3.0(仅 Java 配置 - 无 web.xml) 用法 git clone mvn spring-boot:run ...

    Wicket开发指南-简体版

    尽管Wicket与其他Java Web框架如Struts存在一定的相似性,但它引入了许多创新功能,使得开发者能够更高效地创建复杂的应用程序。对于是否应该选择Wicket而非其他已有的框架,这主要取决于项目需求和个人偏好。 **...

    wicket常用控件使用方法

    通过本文的介绍,我们可以看到Wicket提供了一套完整且灵活的方式来处理Web页面上的控件。从简单的文本标签到复杂的表单处理,Wicket都能够提供简单易用的API。掌握这些基本控件的使用方法,能够帮助开发者快速构建...

    wicket基础控件

    以上是Wicket基础控件的一些关键概念,通过这些控件的组合和扩展,开发者可以构建出复杂且功能丰富的Web应用。在实际项目中,还需要了解如何处理事件、进行数据验证、应用CSS样式以及与其他服务集成等知识。Wicket的...

    wicket指南

    4. **可扩展性**:Wicket 支持自定义标签库和组件,允许开发者根据需求创建新的功能模块。 5. **JSR 168/286 支持**:Wicket 兼容portlet标准,可以无缝集成到portlet容器,如Apache Pluto或Liferay Portal。 **二...

    Wicket.pdf(Wicket开发指南)

    - **部署方式:** 通过在 web.xml 中配置 Filter 来启动 Wicket 应用程序。 #### 六、结语 Wicket 作为一种先进的 Java Web 开发框架,不仅提供了丰富的功能和组件库,而且拥有较低的学习曲线,非常适合希望快速...

    wicket_mvn库

    **Wicket Maven 库详解** Wicket Maven 库是一个针对 Apache Wicket 框架的 Maven 存储库...通过熟练掌握 Maven 和 Wicket 的基本概念和用法,开发者可以更高效地利用这个库来开发出功能丰富的、健壮的 Web 应用程序。

    wicket文档

    尽管存在这样的争议,但Wicket通过提供一套独特的开发模式和功能集证明了自己的价值。它强调了开发者生产力的重要性,并且设计时充分考虑到了灵活性和扩展性。 **1.3 Wicket与目前Web框架的比较** - **1.3.1 ...

    Wicket中文开发指南

    通过上述知识点的介绍,我们可以看到Wicket不仅具有丰富的功能和良好的设计,还提供了详尽的文档和示例,是进行Java Web开发的理想选择。无论是初学者还是有经验的开发者,都能够从中获益匪浅。

    wicket-spring-template:带有 wicket spring 和 hibernate 的模板项目

    Spring-Hibernate项目会包含配置文件(如`pom.xml`、`applicationContext.xml`、`hibernate.cfg.xml`)、Java源码(包括Wicket页面和模型类、Spring配置和服务层、Hibernate实体类)、静态资源(如HTML、CSS、JS)等...

    wicket例子和开发指南

    Wicket是一个开源的Java Web应用程序框架,它提供了一种组件化的开发方式,使得Web应用的构建更为简单和直观。这个压缩包包含了一个Wicket的开发指南PDF文档以及一些示例项目,这些都是学习和掌握Wicket框架的重要...

    Wicket 入门

    ### Wicket 入门与 Eclipse 项目创建指南 在当今的 Web 开发领域,Java 框架扮演着举足轻重的角色,其中 Apache Wicket 是一个强大的、面向组件的 ...希望本文能帮助你顺利入门 Wicket,开启 Java Web 开发的新篇章。

Global site tag (gtag.js) - Google Analytics