Web MVC框架-视图模板查找及组织

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情

       我们知道,一个基于请求转发模型的Web MVC框架需要解决如何告知框架使用哪一个视图来进行程序执行结果呈现?对于Struts1.x来说,需要在struts-config.xml中配置一大堆的page或者在程序中硬编码使用new Forward来告知框架使用哪一个视图界面来呈现输出结果;而对于Struts2webwork来说,需要使用return SUCCESS””,并在配置文件中使用配置来指定具体的输出路径。一堆一堆或长串长串的代码有时候把程序员压得喘不过气来,其实这也是Rails之所以叫嚣的原因之一。

       EasyJWeb引入了很多灵活适用的功能,解决了传统MVC框架中处理页面查找的功能,使用惯例代替配置的方式,可以不用写任何代码或任何配置文件,EasyJWeb自动知道程序所需要的视图,并使用该视图来呈现输出结果。

       比如一个简单的需求,我们需要在页面上显示一个用户的信息,这个简单需求涉及到用户向服务器端发送一个记取用户信息的请求,然后用户程序作一些业务处理后(比如从数据中查询或创建新对象等),然后导向到显示页面并显示数据。

User类的内容如下:

 
public class User {
private String name;
private String email;
private Date bornDate;
private Integer loginTimes;
public User(String name,String email,Date bornDate)
{
    
this.name=name;
    
this.email=email;
    
this.bornDate=bornDate;
    
this.loginTimes=5;
}

public String getName() {
    
return name;
}

//省略其它getter及setter方法
}

用于显示用户信息的html页面模板,内容如下:

 

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>html模板</title>
</head>

<body>
<h1>用户信息</h1>
<p>姓名:${name}<br />
邮箱:${email}
<br />
出生日期:${bornDate}
<br />
登录次数:${loginTimes}
</p>
</body>
</html>

  给该模板取名为show.html,并存放在WEB-INF/views/hello目录下。最后我们需要写一个HelloAction,从而实现动态显示各种用户的信息。HelloAction中的代码如下:

package com.easyjf.demo.mvc;

import java.util.Date;

import com.easyjf.web.WebForm;
import com.easyjf.web.core.AbstractPageCmdAction;

public class HelloAction extends AbstractPageCmdAction {
public void show(WebForm form)
{
    User user
=new User("天一","254400283@qq.com",new Date());    
    form.addPo(user);
}

}

 

web.xml中添加一个自动扫描Action的配置,如下:

然后起动Web服务器,在地址栏中输入, 执行结果如下:

<context-param>
        
<param-name>defaultActionPackages</param-name>
        
<param-value>
            com.easyjf.demo
        
</param-value>
    
</context-param>

 

可以看到,HelloActionshow方法中语句非常少,没有一条用来处理关于页面跳转的语句,也没有像Struts那些必须的return语句,EasyJWeb会自动找到相应的用户最想要的模板页面,然后进行输出。

当然,页面的跳转及组织并非固定死了的,如果你不愿意守这个规矩,想把show.html这个模板文件改名为show1.html,并存放到WEB-INF/views/myHello这个目录,则上面的show方法则可以写成如下的形式:

public Page show(WebForm form)
{
    User user
=new User("天一","254400283@qq.com",new Date());    
    form.addPo(user);
    
return new Page("/myHello/show1.html");
}

另外,对于页面的组织,EasyJWeb是使用Module及模块的形式进行组织的,把多个相关的页面及功能都组装到一个模块中,比如假如上面的HelloAction中还要处理用户编辑,用户删除,用户列表显示等操作,则我们直接在上面的类中添加名为adddellist等名称的方法即可,同时把相关的模板页面都统一存放在hello这个目录中。

基于MVC架构的网站模板开发实战项目 相比动态类型或字典结构,强类型模型的最大优势在于编译时检查和IDE智能提示。它可以提前暴露拼写错误、类型不匹配等问题,让你在运行前就发现问题。来看一个电商系统中的商品实体:set;[Required(ErrorMessage = "名称不能为空")][StringLength(100, MinimumLength = 2, ErrorMessage = "名称长度应在2-100字符之间")]set; 阅读详情

相关推荐

.NET代码生成器 C# 版 (可自定义模板函数和模板类,及视图实体)

列出主要功能:  访问三种不同数据库  产生数据库的树形列表  查看数据库属性(表,视图,存储过程,字段)  通过表名自动产生SQL基本语句(select,insert,update,delete)  执行sql语句并返回结果  获得视图,存储过程的sql定义  用户自定义代码生成(可选择层,可选择生成的DAL函数)  用户批量生成代码文件(解决方案文件,项目文件,各个层的代码文件)  通过sql语句,生成视图字段实体。  可定义函数模板和类模板,使代码生成更加通用化。 说明:这需要事先安装.net framework 3.5 。这个完全出自本人之手。有什么建议望指正。 邮箱:hp_co@qq.com 。 类似于李天平的,但那个太死了,这个可以自定义函数模板和类模板,及视图实体。 文档请发邮件找我索取。 还有这个完全免费,不需要任何注册。希望大家提意见,我及时改正。

MVC-架构的讲解及使用及(自定义框架的实例演示)

MVC架构最初是由计算机科学家Trygve Reenskaug在1979年提出的。他在研究Smalltalk-76编程语言的过程中,为了更好地组织和管理代码,提出了MVC架构的概念。Trygve Reenskaug在他的研究和实践中实现了MVC的基本原则和设计模式,并将其应用于图形用户界面(GUI)的开发。因此,可以说MVC架构是由Trygve Reenskaug创建的。他的贡献和工作奠定了MVC作为一种流行的设计模式和架构思想的基础,对后续的软件开发产生了广泛的影响。

SAME_LOVE的博客 1526

web网站系统模板

一个bootstrap编写的全套模板,包含增删改查,文件上传,角色权限管理的界面,还有其他图形化界面,大气好用,便于套用

.net mvc模板视图的几种用法

本文介绍了.net开发中几种视图的使用方法,1、简单模板视图,2、多模板视图,3、部分模板视图,另外可以在视图文件里直接写c#代码,强大的ide可以支持混合编程,需要源码的可以去这里下载:等一下 1、简单模板视图 a、新建mvcweb项目后,在share的共享模板文件夹下,新建MyMasterPage模板页面 b、在view文件夹下创建test文件...

u014194297的博客 2100

MVC框架详解-WEB应用程序开发

MVC是一种架构设计模式,按照这种方式设计的应用叫做MVC应用。它将应用程序拆分成三个核心部分:Model(模型)、View(视图)和Controller(控制器)。MVC应用会通过中介者来协调这三个部分的工作,并在它们之间传递信息。MVC框架本着功能复杂化而生,因此旨在解决代码异味、增加业务模块可重用性、优化Web开发流程等问题。前端技术在改变过程中不断升级,但以MVC为基础的Web应用程序开发设计模式无疑是亘古不变的。在初学时,我们可以通过通读示例代码为自己编写代码找到一个更清晰的方向。

DevCorner的Pro技术博客 3220

09 | MVC架构解析:视图(View)篇

今天我们学习了 MVC 架构中的视图层(View),对于五花八门的页面聚合技术,我们需要抓住其本质,和前面学习 Model 层的解耦一样,应对软件复杂性的问题,绝招别无二致,就是“拆分”。无论是分层、分模块,还是分离静态模板和动态数据,当我们定义了不同的拆分方法,我们就把一个复杂的东西分解成组成单一、职责清晰的几个部分,分别处理以后,再聚合起来,不同的聚合方法正是由这些不同的拆分方法所决定的。

qq_37756660的博客 2444

PHPWEB 四百多套网站模板预览及在线网址查看

PHPWEB 四百多套网站模板预览及在线效果查看 适用于企业建站/购物商城 所有模板含源代码 100元一套,如购买本公司(idc.speedyweb.cn)服务器可享受免费部署服务。如需改变及二次开发另行收费

springMVC初始框架模板

springMVC初始框架模板,可以直接启动tomcat进行测试,也可以作为springMVC学习和开发的起步模板

MVC简单框架源码C#.net

MVC权限简单例子 using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace MVCDemo.Models { public class SysRole { public int ID { get; set; } public string RoleName { get; set; } public string RoleDesc { get; set; } public ICollection<SysUserRole> SysUserRoles { get; set; } } }

上一篇: 美丽的错误
下一篇: Web MVC框架-命令及页面跳转
大峡
博客等级 码龄21年 703粉丝 252原创
评论 7
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值