好吧,我想学习 Struts,所以我将从 Struts 1 开始,我想知道一般流程。需要什么文件?
struts-config.xml 的作用是什么?验证.xml?validation-rules.xml 当您访问您的 JSP 页面时,触发了一个动作,会发生什么?Action 和 Form 类有什么作用?触发动作时首先调用哪个类。
我刚刚下载了一个示例表单,所有这些文件起初都令人困惑。我想知道发生了什么来更好地了解 Struts。
好吧,我想学习 Struts,所以我将从 Struts 1 开始,我想知道一般流程。需要什么文件?
struts-config.xml 的作用是什么?验证.xml?validation-rules.xml 当您访问您的 JSP 页面时,触发了一个动作,会发生什么?Action 和 Form 类有什么作用?触发动作时首先调用哪个类。
我刚刚下载了一个示例表单,所有这些文件起初都令人困惑。我想知道发生了什么来更好地了解 Struts。
您应该从 Struts 教程开始,这将使其易于理解:D。你可以在网上找到很多,尤其是 Struts 1。这里是一个起点,例如。
但只是为了它,这里是一个高视图演示。
首先,将 Struts 添加ActionServlet
到web.xml
文件中,并将其配置为接受匹配特定映射的请求。对于 Struts 来说,这是*.do
(你可以拥有任何你想要的东西,这*.do
只是 Struts 社区中的一个约定)。
现在,任何到达服务器的具有这种*.do
URL 模式的东西都会被发送到ActionServlet
.
现在,struts-config.xml
文件的内容开始发挥作用。这ActionServlet
是一个前端控制器,它只是分派到其他更合适的资源进行特定处理。这些特定的资源就是Action
类。
例如,您可以有一个LoginAction
必须处理到达login.do
路径的请求。在struts-config.xml
你指定这个:login
路径上的所有东西都必须发送到LoginAction
类。
并且您可以拥有任意数量的声明,例如 path x
call XAction
、 for y
callYAction
等。
通常,您的客户端向服务器提交数据,即他输入 HTML 表单的数据。您需要在Action
课堂上处理这些数据。现在输入ActionForm
。
这ActionForm
是 Struts 框架用来自 HTML 表单的数据填充的 bean。而不是这样做request.getParameter("foo")
,您可以使用 formBean.getFoo()
例如对象。
一旦你在课堂Action
上使用.ActionForm
视图通常是 JSP 文件。当您从您的 . 返回时Action
,您可以按名称指定一个“前进”位置(即到哪个视图去)。现在,信息再次出现在struts-config.xml
文件中,其中视图名称映射到 JSP 位置。
然后框架会将控制权转发给该 JSP,JSP 呈现数据,然后将其作为 HTML 发送给客户端(客户端将不再需要直接访问 JSP - 它们必须被 Struts 框架隐藏)。
在新页面中,客户端再次执行一些请求并重复该过程。
好吧,这就是它所能得到的最高水平的展示。当然还有更多,但是您会在学习 Struts 时发现它们。
至于validator-rules.xml
and validation.xml
,它们由Validator框架使用,您可以通过使用插件与 Struts 集成(Struts 具有可用于添加新内容的插件),还可以为用户输入添加验证。
嗯,就是这样。您可以在网上找到大量提供更多详细信息的教程,但希望能帮助您更好地开始。
祝你好运!
action="login.do"
。容器将调用web.xml
. 其中
web.xml
有两个部分 servlet 和 servlet 映射*.do
在 url 模式中找到。如果它发现采用 servlet 的名称。并检查相应的类。在 servlet 部分。那堂课是 ActionServlet
。RequestPrecessor
类实例Service(req,res) RequestPrecessor rp = new RequestPrecessor();
RequestProcessor
我们通过实例调用类的一个流程方法rp.process(req,res)
在这种情况下,有 6 个步骤正在处理
Struts- Config.xml
. 它将保留动作映射路径、值、类型转发等的所有细节,validation=true/false
这些input
="*.jsp"
r 创建的实例ActionMapping
实例化 ris 是否提及,
validate =true/false
如果为 false,它将不执行此步骤,否则它将执行此步骤。ActionErrors
实例。如果它不为空。它将进入错误页面,否则它将进入相应的页面。else if 为空 if 会更进一步,在 jsp 视图中显示 page 的对应值。这就是 struts 流程。Struts 不直接支持 Model。但是,Struts 操作和配置文件使您能够自己实现它。
1) 扩展 org.apache.struts.action.ActionForm 的表单 bean,在运行时以两种方式使用:
2) Struts 标签库,如 bean、logic、html & tile 插件
供您比较和参考,这里是Struts 2.3演示