Java Web 开发后续(二)

来源:互联网 发布:淘宝店铺显示的是昵称 编辑:程序博客网 时间:2024/05/22 12:40

Q1:在workbench中建立FK时,会有可勾选的选项(FK options):

(1)On Delete

Restrict :当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。

Cascade:当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则也删除外键在子表(即包含外键的表)中的记录。

关于Casade有一个很详细的解释链接在这里~~

Set null:当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(不过这就要求该外键允许取null)

No action:意思同restrict.即如果存在从数据,不允许删除主数据。

(2)On Update

restrict(约束):当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许更新。 no
action:意思同restrict.
cascade(级联):当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则也更新外键在子表(即包含外键的表)中的记录。
set null:当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(不过这就要求该外键允许取null)。
NO ACTION和RESTRICT的区别:只有在及个别的情况下会导致区别,前者是在其他约束的动作之后执行,后者具有最高的优先权执行。

思考之后,选择两项都选择Cascade选项。
OK,数据库的创建到此为止。

Q2:配置struts.xml文件

这个文件的简单结构,大概可以分析为两部分:
(1)

<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd">

注:DTD(Document Type Definition)文档类型定义,是一套为了进行程序间的数据交换而建立的关于标记符的语法规则。它是标准通用标记语言和可扩展标记语言1.0版规格的一部分,文档可根据某种DTD语法规则验证格式是否符合此规则。
所以该语句应该你所使用的struts版本相符合

(2)固定形式

<struts><package> <action name="动作名称" class="Action类" method="调用Action类中的方法">     <result name="返回值1">/结果页面1.jsp</result>     <result name="返回值2">/结果页面2.jsp</result> </action>  </package> </struts>

1.关于package配置:

在struts.xml文件中package元素用于定义包配置,每个package元素定义了一个包配置。它的常用属性有:
name:必填属性,用来指定包的名字。
extends:可选属性,用来指定该包继承其他包。继承其它包,可以继承其它包中的Action定义、拦截器定义等。
namespace:可选属性,用来指定该包的命名空间。

2.关于命名空间namespace配置
当同一个Web应用中需要同名的Action时,Struts2以命名空间的方式来管理Action,同一个命名空间不能有同名的Action
Struts2通过为包指定namespace属性来为包下面的所有Action指定共同的命名空间。
注:如果某个包没有指定namespace属性,即该包使用默认的命名空间,默认的命名空间总是”“。

3.包含配置 include file:

<struts>    <include file="struts-default.xml"/></struts>

如果按照这个套路来写struts.xml文件的话好像也不是很难,emmm,收起我的flag。

原创粉丝点击