我想研究Struts,所以我将从Struts 1开始, 我想知道一般的流程。需要哪些文件?
什么是struts-config.xml的功能? validation.xml中?验证 - rules.xml中 当您访问JSP页面并触发操作时,会发生什么? Action和Form类有什么作用?当一个动作被触发时,首先调用哪个类。
我刚下载了一个示例表单,所有这些文件最初都令人困惑。我想知道为什么要更好地了解Struts。
答案 0 :(得分:33)
您应该从Struts教程开始,这将使其易于理解:D。你可以在网上找到很多,特别是对于Struts 1. Here is a starting point for example。
但仅仅是为了它,这是一个高视图演示。
首先,将Struts ActionServlet
添加到web.xml
文件中,然后将其配置为接受与特定映射匹配的请求。对于Struts,这是*.do
(你可以拥有你想要的任何东西,*.do
只是Struts社区中的一个约定。)
现在,带有*.do
网址格式的服务器上的任何内容都会发送到ActionServlet
。
现在,struts-config.xml
文件的内容发挥作用。 ActionServlet
是front controller,它只会调度到其他更合适的资源以进行特定处理。这些特定资源是Action
类。
例如,您可以拥有必须处理LoginAction
路径上的请求的login.do
。在struts-config.xml
中指定:login
路径上的所有内容都必须发送到LoginAction
类。
您可以根据需要设置尽可能多的声明,路径x
致电XAction
,y
致电YAction
等等。
通常,您的客户端将数据提交给服务器,即他输入HTML表单的数据。您需要在Action
课程中处理的这些数据。现在输入ActionForm
。
ActionForm
是Struts框架填充HTML表单数据的bean。您可以使用request.getParameter("foo")
等对象来代替formBean.getFoo()
。
使用Action
在ActionForm
课程中进行处理后,您必须在某个视图中显示结果(顺便说一句,Struts是MVC框架,因此您必须也知道一两件事。
视图通常是JSP文件。当您从Action
返回时,您可以按名称指定“转发”位置(即要转到哪个视图)。现在,信息再次位于struts-config.xml
文件中,其中视图的名称映射到JSP位置。
然后框架将控制转发到该JSP,JSP将呈现数据,然后将其作为HTML发送到客户端(客户端将不再需要直接访问JSP - 它们必须由Struts框架隐藏)。
在新页面中,客户端再次执行一些请求,并重复该过程。
嗯,那就是它可以获得的高度展示。当然还有更多,但你会在学习Struts时发现它们。
对于validator-rules.xml
和validation.xml
,Validator框架使用了integrate with Struts框架,您可以{{3}}使用插件(Struts有插件可以使用添加新内容)以便为用户的输入添加验证。
嗯,就是这样。您可以在网上找到大量有关详细信息的教程,但希望可以帮助您获得更好的开端。
祝你好运!答案 1 :(得分:8)
action="login.do"
。容器将调用web.xml
。在那里面
web.xml
有两个部分servlet和servlet映射*.do
。如果发现了
取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"
等这些已创建的实例ActionMapping
实例提到或不提供
validate =true/false
如果为false,则不会执行此步骤
它将执行此步骤。ActionErrors
个实例。如果它不是空的。它将转到错误页面
另外,它将到达相应的页面。否则如果它是空的
如果会更进一步,在jsp中显示相应的页面值
view.This是struts flow。答案 2 :(得分:-1)
Struts不直接支持Model。但是,Struts操作和配置文件使您能够自己实现它。
1)Form Bean ,它扩展了org.apache.struts.action.ActionForm,在运行时有两种使用方式:
2)Struts标记库 ,例如bean,逻辑,html和tile插件
为便于比较和参考,这里是Struts 2.3演示