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

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中: : 按确定 几秒钟后,将出现一个名为“日期:第二天”的新组...

    华中科技大学电信专业 课程资料 作业 代码 实验报告-数据结构-内含源码和说明书.zip

    华中科技大学电信专业 课程资料 作业 代码 实验报告-数据结构-内含源码和说明书.zip

    java 游戏飞翔的小鸟

    java 制作游戏 飞翔的小鸟

    setuptools-25.3.0.zip

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

    学生课设,C++数据结构实验,图的实现,vs2022完整项目,包含完整代码,开箱即用

    适用数据结构课程,大学生必备资源。 ALGraphAlgo.h 定义了图数据结构相关的函数,包括无向图的创建、获取顶点数据、邻接边及遍历操作。 ALGraphDef.h 定义了图的邻接列表数据结构,包括顶点、边的结构体和图的数据结构,以及队列结构。 pubuse.h 包含基本的标准库导入,定义了布尔常量、枚举和类型别名,用于项目中的通用操作。 ALGraphUse.cpp 实现了一个交互式应用,允许用户创建、探索并遍历图,使用了上述头文件中定义的数据结构和函数。 整个程序的功能是:提供一个基于命令行的图形数据结构交互式工具,用户可以创建无向图,查询顶点信息和邻接边,并进行深度优先和广度优先遍历。 这些文件整体上构成了一个C++实现的图数据结构库,包含图的定义、算法实现以及一个示例应用,让用户能够创建、操作和遍历无向图。

    JAVA+SQL离散数学题库管理系统(源代码+论文+外文翻译).zip

    JAVA+SQL离散数学题库管理系统是一个用Java编程语言和SQL数据库管理系统构建的应用程序,旨在帮助用户管理离散数学题库。该系统主要包括以下功能: 题库管理:允许用户添加、编辑、删除离散数学题目,包括题目内容、选项、答案等信息。用户可以根据需要对题目进行分类、标记或搜索。 用户管理:支持用户注册、登录、注销等功能,保障系统安全性和个性化服务。管理员可以管理用户权限,如分配不同的角色和权限。 练习和测试:用户可以通过系统进行练习和测试,选择特定题目或随机生成题目进行答题。系统会自动批改答案并记录用户的答题历史和成绩。 数据统计和分析:系统可以对用户的答题情况进行统计和分析,包括答题时间、正确率、题目难度等,帮助用户了解自己的学习情况并进行有效的学习计划。 系统设置:提供系统参数设置、题目难度调整、数据备份等功能,保障系统稳定运行和数据安全。 通过以上功能,JAVA+SQL离散数学题库管理系统能够有效地帮助用户管理离散数学学习过程中的题目资源,提高学习效率和成绩。

    毕业设计 基于Python+Django+itemCF和userCF算法音乐推荐系统源码+详细文档+全部数据资料 高分项目

    【资源说明】 毕业设计 基于Python+Django+itemCF和userCF算法音乐推荐系统源码+详细文档+全部数据资料 高分项目 【备注】 1、该项目是高分毕业设计项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 3、本项目适合计算机相关专业(如软件工程、计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也可作为毕业设计、课程设计、作业、项目初期立项演示等,当然也适合小白学习进阶。 4、如果基础还行,可以在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!

    setuptools-54.1.1-py3-none-any.whl

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

    基于Hadoop的决策树分类算法的并行化研究.docx

    概要:本研究基于Hadoop平台对决策树分类算法进行了并行化处理,旨在提高计算效率和扩展性。通过引入MapReduce编程模型,实现了在大规模数据集上的高效处理,显著提升了分类效率。 适用人群:本资源适用于数据科学家、机器学习工程师和对大数据处理有需求的专业人士。同时,也适合对并行算法和分布式计算感兴趣的学术研究者。 使用场景及目标:该资源可应用于大规模数据集上的决策树分类任务,如广告点击率预测、电子商务用户行为分析等领域。通过并行化处理,可以提高分类效率,加快模型训练速度,提升算法性能和准确度。 其他说明:本研究提供了基于Hadoop的决策树分类算法并行化处理的解决方案,适合于需要在大数据环境下进行机器学习任务的应用场景。通过利用分布式存储和计算框架,可以有效地处理大规模数据集,提高算法的实时性和准确性。欢迎对大数据处理和机器学习算法优化感兴趣的专业人士和研究者使用并参考该资源。

    setuptools-51.3.1-py3-none-any.whl

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

    setuptools-0.7.4.zip

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

    GB-7714-2015 Zoetro的csl文件

    这是符合GB-7714-2015 Zoetro的csl文件,使用该标准的学校可以使用此csl撰写毕业论文,Zoetro的使用请查询其他博客,本人免费分享,若发现无法下载可以联系本人邮箱。

    setuptools-8.0.3.zip

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

    华为OD机试D卷 - 小朋友来自多少小区 - 免费看解析和代码.html

    私信博主免费获取真题解析以及代码

    YOLOv8的Pyside6可视化界面

    PySide6:PySide6 是 Qt for Python 的官方绑定,提供了创建图形用户界面所需的所有工具和类。 YOLO 模型:选择一个 YOLO 版本(如 YOLOv3、YOLOv4 或 YOLOv5),并使用预训练的模型或自己训练的模型。 项目结构:设计应用程序的布局,包括菜单栏、工具栏、状态栏以及用于显示视频流和检测结果的窗口。 视频流处理:集成摄像头或视频文件,使用 YOLO 模型进行实时目标检测,并更新GUI以显示带有边界框的图像。 GUI 组件: 播放控制:开始、停止、暂停按钮。 参数调整:允许用户更改 YOLO 模型的参数,如置信度阈值、非极大值抑制(NMS)阈值等。 模型选择:如果支持多个模型,允许用户选择不同的 YOLO 模型。 线程处理:为了不阻塞 GUI,将视频处理和 YOLO 检测放在单独的线程中。 错误处理:确保应用程序能够处理各种潜在错误,如模型加载失败、视频流中断等。 用户文档:提供用户指南或文档,说明如何使用应用程序,包括如何配置和运行检测。 部署:使用 PyInstaller 或其他工具将应用程序打包,以便在没有 Python

    基于SpringBoot的“在线动漫信息平台”的设计与实现.rar

    随着社会互联网技术的快速发展,每个行业都在努力与现代先进技术接轨,通过科技手段提高自身的优势;对于在线动漫信息平台当然也不能排除在外,随着网络技术的不断成熟,带动了在线动漫信息平台,它彻底改变了过去传统的管理方式,不仅使服务管理难度变低了,还提升了管理的灵活性。这种个性化的平台特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对在线动漫信息平台而言非常有利。 本系统采用的数据库是Mysql,使用Spring Boot框架开发,Java语言、B/C架构。在设计过程中,充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护、操作方便以及页面简洁等特点。

    图王输入法自动切换-V1.0.3

    图王输入法自动切换, ACAD2010~2025命令永行远是英文状态, 免除输入命令时中文干扰

Global site tag (gtag.js) - Google Analytics