`
changyangzhw053
  • 浏览: 11538 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

NSun.MVC 仿 Java Struts

 
阅读更多

来源:http://www.verydemo.com/demo_c140_i19619.html

      asp.net MVC在不断改进,NSun.MVC也只是本人的爱好和实践体验所编写。

      大多数net程序员可能都不喜欢Java的那种繁琐的配置编程,本人仿照Java MVC框架Struts编写了基于Asp.net的MVC框架NSun.MVC,也是借鉴了Java那样的配置方式。本人编写过一些Java程序,但是对于Java这种配置并不感到麻烦和繁琐而是感觉到这样的好处,配置也并不影响编程的效率反而觉得模块分离后的配置带来编程的效率。

      配置及使用方法:

....................................................................

2.首先引入NSun.MVC.dll

3.在web.config配置文件中配置

  <configSections>
 <!--配置mvc-->
    <section name="actions" type="NSun.MVC.MvcSection,NSun.MVC"/>
  </configSections>
 <httpHandlers>
        <remove verb="" path=""/>
        <add verb="" path="" type=""/>
        <remove verb="" path=""/>
        <add verb="" path="" type=""/>
</httpHandlers>

4.建立一个action类(LoginAction),继承自NSun.Mvc.BaseAction,需要实现一个抽象的Execute的方法(提交默认执行方法)

public override ActionMapping Execute(ActionFormBean formbean, HttpRequest request, HttpResponse response)
        {            
  var f = (formbean as LoginForm);
            ViewData["name"] = f.Name;
            ViewData["pass"] = f.Pass;
            return new ActionView("main");
        }
 如果想定义其他方法需要以Execute作为方法名的后缀,比如添加方法那么方法名为AddExecute,访问路径为配置路径+"/Add"就可以了(如:Login.do/Add)
就可以访问AddExecute方法了。这里我们就用默认方法。
5.客户端提交表单可能需要一个实体来组装那么我们来做一个FormBean来组装客户端参数,添加FormBean类(LoginForm),继承自NSun.MVC.ActionFormBean,
这里需要实现一个抽象方法,是用来验证参数值的,如果不需要验证我们return null就可以了。这里为了演示功能我们验证一个密码必须大于3。
  LoginForm : ActionFormBean
    {
          Name { ; ; }
          Pass { ; ; }

          ActionMapping Validate(HttpRequest request)
        {
             (request[""].Length<3)
            {
                  ActionView("", "");
            }
            
            {
                 ;
            }
        }
    }
如果参数有错误则跳转配置的错误页面ActionView第一个参数为跳转页面名称,第二个参数为错误信息。默认获取名称为(MESSAGEERROR)在页面可以通过
<%=ViewData["MESSAGEERROR"]%>来获得错误信息。也可以通过配置来修改名称。
  <appSettings>
    <!--修改错误存储key名称-->
    <add key="errorname" value="error"/>
  </appSettings>
以上则修改错误信息名称MESSAGEERROR为error获取变为<%=ViewData["error"]%>
6.Formbean和Action都建立好了,添加一个Login页面。因为没有工具的支持所以如果添加aspx页面还的删除对应的.cs文件,这里我们直接建立一个htm页面把
后缀修改为aspx即可,唯一需要修改的是在页面中添加
<%@ Page Language="C#" Inherits="NSun.MVC.MVCPage" %>这样一句声明。这样就不会有多余的cs文件了。还需要一个错误页面Error.aspx和登录后页
面Main.aspx
Login.aspx页面:
<%@ Page Language="" Inherits="" %>
<!DOCTYPE html PUBLIC "" "">
<html xmlns="">
<head>
    <title></title>
</head>
<body>
    <form action="" method="">
    帐号:<input id="" name="" type="" />
    密码:<input id="" name="" type="" />
    <input id="" type="" ="" />
    </form>
</body>
</html>
Error.aspx页面:这里配置错误信息key为error
<%@ Page Language="C#" Inherits="NSun.MVC.MVCPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    错误为:<%=ViewData["error"] %>
</body>
</html>
 
Main.aspx页面:
<%@ Page Language="C#" Inherits="NSun.MVC.MVCPage" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    帐号:<%=ViewData["name"] %><br />
    密码:<%=ViewData["pass"] %>
</body>
</html>
 
7.action=""是哪里来的?这里我们需要配置action。配置如下:
 <actions>
    <!--
      class:actionclass
      path:访问路径这里.do结尾可以在配置文件中该
      formbeanclass:这里对应一个formbean可空
      id:方便看可空
    -->
    <action class=" NSunMVCSample.Action.LoginAction,NSunMVCSample" path="/Login.do" formbeanclass="NSunMVCSample.FormBean.LoginForm,NSunMVCSample" id="login">
      <!-- 
       id:唯一
       path:跳转路径
       type:跳转方式Transfer,Redirect-->
      <forward path="Main.aspx" id="main" type="Transfer"></forward>
      <!--form验证后跳转错误页面-->
      <forward path="error.aspx" id="error" type="Transfer"></forward>
    </action>    
 8.完成!

Demo源码下载:NSunMVCSample.rar

分享到:
评论

相关推荐

    NSUN.Storm.4.v1.0-v1.07.Plus.15Tr.rar_storm_啊啊啊啊

    本站目前内容292万个,分类257个,凝聚了几十万会员的辛勤劳动和私家珍

    使用NSun(框架)快速开发项目

    NSun简介:NSun基于.Net...发布网站:http://www.cnblogs.com/duanseven(对于NSun的更新以及教程)核心DLL:NSun.Core.dllNBearLite.dllNBear.Core.dll下载地址:NSunSample.rar(实例) nsun.rar(引用)Nbearlite查询:...

    SSAFY5thGumi03AlgoStudy

    SSAFY5thGumi03算法研究 ... 例如)BOJ / [13460]탈출2 / nsun9505 / Main.java 例如)BOJ / [13460]탈출2 / nsun9505 / Readme.md 백준:BOJ / [문제번호]문제이름/계정/README.md :로그래머스:程

    textexpander-dates-nextday:一小组TextExpander代码段,可通过按名称引用将其Swift而轻松地将下一周的任何日期插入文档中

    nsun | 安装 要安装这些片段,请执行以下操作: 打开TextExpander 单击对话框左下方的+号,然后选择从URL添加组... (或按⌘-L) 粘贴在以下URL中: : 按确定 几秒钟后,将出现一个名为“日期:第二天”的新组...

    Java swing + socket + mysql 五子棋网络对战游戏FiveChess.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    纯C语言实现的控制台有禁手五子棋(带AI)Five-to-five-Renju.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    setuptools-57.1.0.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    setuptools-59.1.1.tar.gz

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    空载损耗计算软件.zip

    空载损耗计算软件

    贪吃蛇.cpp

    贪吃蛇.cpp

    Gobang Game programmed by C(五子棋游戏)Gobang.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    单片机C语言Proteus仿真实例用DS1302与数码管设计的可调电子表

    单片机C语言Proteus仿真实例用DS1302与数码管设计的可调电子表提取方式是百度网盘分享地址

    二叉树的遍历hahahha

    二叉树的遍历hahahha

    setuptools-3.8.1.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    基于linux开发C语言编程五子棋小游戏inset.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    Linux下,C语言实现五子棋程序Linux-Wuziqi.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    飞机大战pygame_demo.zip

    五子棋游戏想必大家都非常熟悉,游戏规则十分简单。游戏开始后,玩家在游戏设置中选择人机对战,则系统执黑棋,玩家自己执白棋。双方轮流下一棋,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。 【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。 【技术】 Java、Python、Node.js、Spring Boot、Django、Express、MySQL、PostgreSQL、MongoDB、React、Angular、Vue、Bootstrap、Material-UI、Redis、Docker、Kubernetes

    K210SD卡掉电存储的人脸识别

    K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210SD卡掉电存储的人脸识别K210

    setuptools-47.3.2.zip

    Python库是一组预先编写的代码模块,旨在帮助开发者实现特定的编程任务,无需从零开始编写代码。这些库可以包括各种功能,如数学运算、文件操作、数据分析和网络编程等。Python社区提供了大量的第三方库,如NumPy、Pandas和Requests,极大地丰富了Python的应用领域,从数据科学到Web开发。Python库的丰富性是Python成为最受欢迎的编程语言之一的关键原因之一。这些库不仅为初学者提供了快速入门的途径,而且为经验丰富的开发者提供了强大的工具,以高效率、高质量地完成复杂任务。例如,Matplotlib和Seaborn库在数据可视化领域内非常受欢迎,它们提供了广泛的工具和技术,可以创建高度定制化的图表和图形,帮助数据科学家和分析师在数据探索和结果展示中更有效地传达信息。

    复制粘贴功能,简单实用

    复制粘贴功能,简单实用,非常好用

Global site tag (gtag.js) - Google Analytics