也谈java设计引用net mvc思路来设计view层,让代码更好的进行分离

sohoyes 2004-11-22 12:06:09
下面我们看一下.net的设计,每一个webForm是由一对文件组成,组成如下
test.aspx---->隐藏代码文件--->test.aspx.cs
我现在在test.aspx文件里创建一个按钮
代码
<%@ Page language="c#" Codebehind="testr.aspx.cs" AutoEventWireup="false"

Inherits="Chems.EMS.Budget.testr" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>testr</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema"

content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 328px;

POSITION: absolute; TOP: 144px" runat="server"
Text="Button"></asp:Button></FONT>
</form>
</body>
</HTML>


在这个隐藏代码里test.aspx.cs产生一个click事件

using System;
using System.Text;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;


namespace Chems.EMS.Budget
{
/// <summary>
/// testr 的摘要说明。
/// </summary>
public class testr:BaseInfo
{
protected System.Web.UI.WebControls.Button Button1;

private void Page_Load(object sender, System.EventArgs e)
{

// 在此处放置用户代码以初始化页面

}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

//click事件
private void Button1_Click(object sender, System.EventArgs e)
{

}
}
}

//==========================================
现在我想在java里也这样实现
感觉这样实现了比较好
test.jsp---->隐藏代码文件--->test.jsp.java
我现在在test.jsp文件里创建一个按钮
代码
//这句是错的,看怎样写
<%@ inport="test.jsp.java" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>testr</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema"

content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
//改成jsp息定义的模式
<jsp:Button id="Button1" style="Z-INDEX: 101; LEFT: 328px; POSITION: absolute; TOP: 144px"

runat="server"
Text="Button"></jsp:Button></FONT>
</form>
</body>
</HTML>


在这个隐藏代码里test.jsp.java产生一个click事件

//引用类
imoort …………


class Chems.EMS.Budget
{
/// <summary>
/// testr 的摘要说明。
/// </summary>
public class testr:BaseInfo
{
protected System.Web.UI.WebControls.Button Button1;

private void Page_Load(object sender, System.EventArgs e)
{

// 在此处放置用户代码以初始化页面

}

#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.Button1.Click += new System.EventHandler(this.Button1_Click);
this.Load += new System.EventHandler(this.Page_Load);

}
#endregion

//click事件
private void Button1_Click(object sender, System.EventArgs e)
{

}
}
}

================
以上难点是怎样写的一个基类取object sender, System.EventArgs e值
怎样写这个base.OnInit(e);才可以实现
new System.EventHandler这一个方法怎样写才可以实现
如果能写下这几个基类,真是好极了,我们就可以用上.net的模式了,那样mvc模式设计得更加爽,不知道

大家是怎样想的呢,可以吗?大家认为这样做view层是不是可行的,大家一起学习,或者你们有什么更好

的方法进行设计view层
...全文
228 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
林仪明 2004-11-26
  • 打赏
  • 举报
回复
ASP.net在web开发中属于model1, 微软推它的目的就是利用它自身强有力的组件化开发方法。
jsf和tapestry都是属于组件化开发方式,但tapestry又不是model1的范围,它比较特殊。
sohoyes 2004-11-26
  • 打赏
  • 举报
回复
Tapestry又有一个,惨,怎java就这么多东东啊,好我先看看先,还反应不过来
林仪明 2004-11-26
  • 打赏
  • 举报
回复
JSF太庞大了!
Tapestry框架就可以,楼主可以去看看,风格和.net很一样,但很简洁。
sohoyes 2004-11-26
  • 打赏
  • 举报
回复
想不到JSF技术已经开始去实现我想要的功能了,那样写程式更加简单了,大家觉得这个技术前景怎样
sohoyes 2004-11-26
  • 打赏
  • 举报
回复
选中一个有前途的框架才好
sohoyes 2004-11-26
  • 打赏
  • 举报
回复
我认为框架是面向组件的架构,选择特定的框架会减轻开发的难度并使各方面的因素(比如系统效能,安全性,可利用的资源,实施的规范)有了保障。所以好的框架是多多益善。
struts,velocity,jetspeed,tapestry都是java web框架。struts是基于jsp taglib的组件框架,velocity本身就是一个脚本语言,jetspeed是portal driven。而tapestry是面向web组件的框架,从结构上来讲它更简洁和直接,JFace也是面向组件的(基于swt),这一点它们有相似之处,只不过一个是Web框架,一个是IDE的框架。
我相信以后还有很多开源的框架出现,或许更好,值得我们选择
jFresH_MaN 2004-11-22
  • 打赏
  • 举报
回复
只要实现你之前的需求就是可行的
呵呵
funcreal 2004-11-22
  • 打赏
  • 举报
回复
楼主不用过多操心了,把struts用好再说
sohoyes 2004-11-22
  • 打赏
  • 举报
回复
只是在前端编写上加多一些命名要求的代码风格的统一,免得各人搞一个,这对大项目不好了
sohoyes 2004-11-22
  • 打赏
  • 举报
回复
你用过struts吗?那是mvc演绎的经一直在用,这也是利用它的技术了,只是想更好的统一公司的编程,这样好维护
sohoyes 2004-11-22
  • 打赏
  • 举报
回复
对于.net服务器控件,我也可以在javabean里实现了,就是不知道这样可行不可行
jFresH_MaN 2004-11-22
  • 打赏
  • 举报
回复
呵呵,java是用javabean来分离显示和功能的
你用过struts吗?那是mvc演绎的经典啊
sohoyes 2004-11-22
  • 打赏
  • 举报
回复
为什么有这样设计的想法,感觉这样设计的view层,很容易维护,代码条理也很清楚,美工人员也更容易设计,只要关心test.jsp就可以了,view层设计员只要设计test.jsp.java代码就ok了!
tjl713 2004-11-22
  • 打赏
  • 举报
回复
楼主如果要这样做可以关心一下JSF技术,你现在可以从SUN的网站DOWN一个IDE开发工具,收费的,不过有30天免费试用,仔细找找吧!里面就实现了这样的功能,在WEB界面拖进一个按钮,它有自己的click事件。不过我目前还是喜欢Struts。

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧