`
HenryYu
  • 浏览: 29952 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Beetle框架使用指南之--Web应用零配置编程

阅读更多

在一个标准的BJAF框架Web应用中,一共涉及到3个配置文件,分别是: web.xml WebController.xml WebView.xml 。其中,web.xml是Servlet标准规范所必须的,不能省略;WebController.xml是控制器的配置文件,主要作用是在页面请求的URL与具体此请求的消费控制器类之间建立一个映射关系,为了省去这个配置文件,我们可以采取一种统一的编程约定来代替。我们BJAF框架采取的约定是:“ 控制器名称= $ + 实现类名称(含包路径) + 后缀 ;“ 视图名称= 视图所在物理路径 + 视图文件名称

例如:WebDemo示例项目(参考框架开发包例子)中, login.html 登录页面的控制器定义是:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title></title>
<link href="t-1.css" rel="stylesheet" type="text/css">
</head>
<body>
<form name="form1" method="post" action="LoginController.ctrl">[1]


  <table width="34%" border="0" align="center">
    <tr> 
      <td><div align="right">用户名:</div></td>
      <td><input name="username" type="text" id="username" value="HenryYu"></td>
    </tr>
    <tr> 
      <td><div align="right">密 码:</div></td>
      <td><input name="password" type="text" id="password" value="888888"></td>
    </tr>
    <tr> 
      <td colspan="2"><div align="center">
	      <INPUT TYPE="hidden" NAME="veiwFlag" value="0">
          <input type="submit" name="Submit" value="提交">
        </div></td>
    </tr>
  </table>
</form>
</body>
</html>
 

WebController.xml 配置文件中的定义是:

<?xml version="1.0" encoding="UTF-8"?>
<mappings>
	<controllers>
		<standard>
			<sItem name="LoginController.ctrl" class="com.beetle.WebDemo.presentation.LoginController" />
		</standard>
	</controllers>
</mappings>
 

那么,换成零配置模式,则 [1] 按照约定改成:

	<form name="form1" method="post" 
	action="$com.beetle.WebDemo.presentation.LoginController.ctrl">[2]

 

即可。关于视图,LoginController控制器返回视图时候,标准模式写法是:

view = new View("MainView", vd); [3]

 // 返回MainView视图
 

而名为“MainView”的视图是需要定义在配置文件 WebView.xml 中的,如:

<?xml version="1.0" encoding="UTF-8"?>
<mappings>
	<views>
		<standard>
			<sItem name="MainView" url="/views/main.jsp" />
		</standard>
	</views>
</mappings>
 

那么换成零配置模式,则 [3] 按照约定,代码改成:

view = new View("/views/main.jsp", vd); // 直接返回视图的具体物理路径和文件名
 

即可。

可能读者注意到 [2] 把完整的实现类暴露在外,一,不利于安全,别人很容易就知道你的代码结构;二,写法上也不够优化,显得太长,太啰嗦,显然“ com.beetle.WebDemo 包名称是公共的;那么有没有优化点定义方法呢?

当然,此时我们只要在web.xml应用配置中,添加一个“ CTRL_PREFIX 参数,把公共包名部分定义在此参数值里面,同时在控制器名称上把公共部分删除即可,如:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<context-param>
    <param-name>CTRL_PREFIX</param-name>
    <param-value>com.beetle.WebDemo</param-value>
 </context-param>
</web-app>
 

[2] 改成:

<form name="form1" method="post" action="$presentation.LoginController.ctrl">
 

详细例子请参考BJAF框架 开发的 ZeroConfigWebDemo 示例项目。

 

分享到:
评论

相关推荐

    beetle 开源框架书的源码

    【标题】"beetle 开源框架书的源码"涉及的是一个名为"beetle"的开源框架的源代码,这通常意味着该框架可能是用于Java平台,因为J2EE(Java 2 Platform, Enterprise Edition)是Java领域广泛使用的开发企业级应用的...

    beetle框架

    Beetle J2ee Application Framework(BJAF)一个功能强大而简单易用的J2EE应用开发框架。它涵盖了J2EE体系结构的表示层、业务层和持久层,为构建一个可靠、高性能、可扩展、灵活缩放的高质量企业应用系统提供了一套...

    Beetle.JT808-master.zip_beetle_beetle c#_beetleX实现订阅_jt808_jt80

    标题中的"Beetle.JT808-master.zip"表明这是一个关于JT808协议的开源项目,由Beetle框架实现,且基于C#编程语言。Beetle是一个通用的通讯框架,而JT808则是一种广泛应用于中国GPS监控系统中的通信协议。这个项目可能...

    BJAF-SDK-2.2.4.rar

    BJAF(beetle-j2ee-application-framework)甲壳虫J2EE应用开发框架代码&开发指南 甲壳虫,一个功能强大而简单易用的J2EE应用开发框架。它涵盖了J2EE体系结构的表示层、业务层和持久层,为构建一个可靠、高性能、可...

    Beetle.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码

    Beetle.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码Beetle.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码Beetle.zipscratch2.0 3.0编程项目源文件源码经典游戏案例素材源代码Beetle....

    高并发量的TCP、UDP框架通信beetle.express.rar_Beetle.Express tls_TCP_UDP_ex

    已经成功应用于多个高并发量的TCP、UDP框架通信接口,

    德利多富(Wincor Nixdorf )BEETLE_XL_II收款机说明书

    ### 德利多富(Wincor Nixdorf) BEETLE_XL_II 收款机说明书 #### 概述 德利多富(Wincor Nixdorf) BEETLE_XL_II是一款模块化的POS系统,专为零售业设计。这款收款机不仅功能强大,而且具备高度的灵活性和可扩展性,...

    Python从零开始,一点一滴学习爬虫。-dung_beetle.zip

    -dung_beetle.zip" 是一个压缩包,其中包含了一个名为 "dung_beetle-master" 的文件夹,这很可能是项目的源代码目录,通常包括教程的实例、脚本和其他相关资源。让我们逐步了解Python爬虫的基本概念和常用工具。 1....

    beetle类包含其他类

    在C#编程中,"Beetle"可能指的是一个自定义的框架或库,用于处理文件传输任务。这个框架可能是为了提高文件传输的效率而设计的。在标题中提到的"beetle类包含其他类",这暗示了Beetle可能是一个封装了多种功能的类库...

    c#_以Beetle为基础SOCKET服客端(WPF)与客户端(winphone\win8 metro)

    标题中的“c#_以Beetle为基础SOCKET服客端(WPF)与客户端(winphone\win8 metro)”指的是一个使用C#编程语言构建的网络通信应用,它基于Beetle框架,实现了SOCKET服务器端(WPF)以及Windows Phone和Windows 8 Metro...

    J2EEWeb开发使用Ajax技术的.pdf

    我们关心是 Ajax 技术的引入对现有传统 J2EE Web 开发方式的影响和挑战,进而论述 Beetle Web 框架封装 Ajax 的理念和机制, 从而最终了解 J2EE Web 开发使用 Ajax 技术的核心所在。 Ajax 技术的引入对传统 J2EE ...

    使用netty3建立的JT809处理基本工程

    在IT行业中,网络通信是至关重要的一个领域,而Netty作为一个高性能、异步事件驱动的网络应用程序框架,为Java开发者提供了构建服务器和客户端应用的强大工具。本项目专注于使用Netty 3来构建一个处理JT809协议的...

    popular beetle 数据库比较,数据整合工具

    在实际应用中,Popular Beetle可以广泛应用于各种场景。例如,在开发阶段,开发者可以使用它来检查新功能对数据库的影响;在测试阶段,测试团队可以利用它来验证数据的一致性,确保测试环境与生产环境的同步;在运维...

    Android-Beetle实现通过摇一摇手机就能够轻松地在GitHubGitLab和AzureDevOps上创建Bug报告

    至于“keracce-Beetle-9cc3275”,这可能是一个源代码库的特定版本标识,比如Git仓库的一个分支或者标签。这个名称可能指的是Beetle项目的作者或者一个特定的开发迭代。要深入理解这个项目,你需要解压这个压缩包并...

    scratch编程项目源代码文件案例素材-Beetle.zip

    本压缩包“Beetle.zip”提供了一个基于Scratch的编程项目源代码,旨在帮助初学者通过一个有趣的“Beetle”游戏案例学习编程。 在“Beetle.sb3”文件中,包含了整个游戏的完整源代码,用户可以直接在Scratch环境中...

    beetle-psx-libretro:Mednafen PSX 到 Libretro API 的独立端口

    甲壳虫 PSX 剧本Beetle PSX 是 Mednafen 的 PSX 模块到 libretro API 的端口/分支。 可以用C++98模式编译,不包括Vulkan渲染器,暂时是用C++11写的。 Beetle PSX 目前在 Linux、OSX 和 Windows 上运行。 这个分叉中...

    加长版甲壳虫汽车外壳3D图纸 solidworks2014设计.zip

    标题中的“加长版甲壳虫汽车外壳3D图纸”是指使用solidworks2014软件设计的一款经典甲壳虫汽车的加长版车型的三维模型。SolidWorks是一款广泛应用于机械设计领域的三维CAD(计算机辅助设计)软件,以其易用性和强大...

    天牛须算法(Beetle Antennae Search Algorithm)论文原文

    天牛须算法(Beetle Antennae Search Algorithm,简称BAS),是一种新型的智能优化算法,它以长角天牛的搜索行为为灵感而设计。长角天牛因其长长的触须而著名,这些触须常常比它们的身体还要长。BAS算法模拟了这些...

    Beetle.dll

    有需要的朋友就下吧

    【目标检测数据集】植物叶片病虫害检测数据集7100张4种植物12个标签VOC+YOLO格式.zip

    标注类别名称:["Cashew-anthracnose","Cashew-healthy","Cashew-leaf-miner","Cassava-bacterial-blight","Cassava-brown-spot","Cassava-healthy","Maize-healthy","Maize-leaf-beetle","Maize-leaf-blight",...

Global site tag (gtag.js) - Google Analytics