Board logo

标题: Struts,MVC 的一种开放源码实现(2)请别在我的 HTML 中加入太多的 Java 代码 [打印本页]

作者: look_w    时间: 2018-7-10 21:57     标题: Struts,MVC 的一种开放源码实现(2)请别在我的 HTML 中加入太多的 Java 代码

请别在我的 HTML 中加入太多的 Java代码在清单 1 中,不是 Java 代码中有大量的 HTML,而是在 HTML文件中有大量的 Java 代码。从这个观点来看,除了允许网页设计人员编写Java 代码之外,我实际上没做什么。但是,我们并不是一无所有;在 JSP1.1 中,我们获得一种称为“标记”的新特性。
JSP 标记只是将代码从 JSP 文件中抽取出来的一种方式。有人将 JSP标记看作是 JSP 文件的宏,其中用于这个标记的代码包含在 servlet中。(宏的观点在很大程度上是正确的。)出于同样的原因,我不希望在Java 代码中看到 HTML 标记,我也不希望在 JSP 文件中看到 Java代码。JSP 技术的整个出发点就是允许网页设计人员创建servlet,而不必纠缠于 Java 代码。标记允许 Java 程序员将 Java代码伪装成 HTML 来扩展 JSP 文件。图 3 显示了从 JSP网页中抽取代码并将它们放入 JSP 标记中的一般概念。
图 3. JSP 标记清单 2 是用来说明 Struts 标记的功能的一个例子。在清单 2中,正常的 HTML         <form> 标记被用 Struts         <form:form> 标记替换。清单 3显示了浏览器接收到的结果 HTML。浏览器获得 HTML         <form> 标记,但带有附加代码,如JavaScript。附加的 JavaScript 激活         email 地址域。服务器端的         <form:form> 标记代码创建适当的 HTML,并使网页设计人员不再接触 JavaScript。      
清单 2. Struts 的 form 标记
1
2
3
4
<form:form action="join.do" focus="email" >
    <form:text   property="email" size="30" maxlength="30"/>
    <form:submit property="submit" value="Submit"/>
</form:form>




清单 3. 发送给浏览器的结果 HTML
1
2
3
4
5
6
7
8
9
<form name="joinForm" method="POST" action="join.do;jsessionid=ndj71hjo01">
    <input type="text" name="email" maxlength="30" size="30" value="">
    <input type="submit" name="submit" value="Submit">
</form>
<script language="JavaScript">
<!--
    document.joinForm.email.focus()
// -->
</script>




有关 JSP 标记的注意事项:模型-视图-控制器 (MVC)JSP标记只解决了部分问题。我们还得处理验证、流程控制和更新应用程序的状态等问题。这正是MVC 发挥作用的地方。MVC通过将问题分为三个类别来帮助解决单一模块方法所遇到的某些问题:
MVC Model 2Web向软件开发人员提出了一些特有的挑战,最明显的就是客户机和服务器的无状态连接。这种无状态行为使得模型很难将更改通知视图。在Web上,为了发现对应用程序状态的修改,浏览器必须重新查询服务器。
另一个重大变化是实现视图所用的技术与实现模型或控制器的技术不同。当然,我们可以使用Java(或者 PERL、C/C++ 或别的语言)代码生成HTML。这种方法有几个缺点:
对于 Web,需要修改标准的 MVC 形式。图 4 显示了 MVC 的 Web改写版,通常也称为 MVC Model 2 或 MVC 2。
图 4. MVC Model 2




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0