Struts的基本流程

use*_*636 12 struts struts-validation struts-config

好吧,我想研究Struts所以我将从Struts 1开始,我想知道一般的流程.需要哪些文件?

什么是struts-config.xml的功能?validation.xml中?validation-rules.xml当您访问JSP页面并触发操作时,会发生什么?Action和Form类有什么作用?当一个动作被触发时,首先调用哪个类.

我刚下载了一个示例表单,所有这些文件起初都很混乱.我想知道为什么要更好地了解Struts.

小智 33

您应该从Struts教程开始,这将使其易于理解:D.你可以在网上找到很多,特别是Struts 1. 这是一个起点.

但仅仅是为了它,这是一个高视图演示.

首先,将Struts添加ActionServletweb.xml文件中,然后将其配置为接受与特定映射匹配的请求.对于Struts,这是*.do(你可以拥有你想要的任何东西,*.do只是Struts社区中的一个约定).

现在,带有这种*.doURL模式的服务器上的任何内容都会被发送到ActionServlet.

现在,struts-config.xml文件的内容发挥作用.这ActionServlet是一个前端控制器,它只是调度到其他更合适的资源进行特定处理.这些特定资源是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使用the 在类中进行处理ActionForm,你就必须在某个视图中显示结果(顺便说一句,Struts是一个MVC框架,所以你也必须知道一两件事).

视图通常是JSP文件.从您返回时,您Action可以按名称指定"转发"位置(即要转到哪个视图).现在,信息再次struts-config.xml出现在视图名称映射到JSP位置的文件中.

然后框架将控制转发到该JSP,JSP将呈现数据,然后将其作为HTML发送到客户端(客户端将不再需要直接访问JSP - 它们必须由Struts框架隐藏).

在新页面中,客户端再次执行一些请求并重复该过程.

嗯,那就是它可以获得的高度呈现.当然还有更多,但你会在学习Struts时发现它们.

至于validator-rules.xmlvalidation.xml,那些由Validator框架使用的,你可以通过使用插件与Struts集成(Struts有插件,你可以使用它来添加新东西),以便为用户的输入添加验证.

嗯,就是这样.您可以在网上找到大量有关详细信息的教程,但希望能帮助您获得更好的开端.

祝好运!


小智 8

  1. 当用户提交jsp页面时.那个页面有(属性)action="login.do".容器会打电话给web.xml.在 web.xml那里有两个部分servlet和servlet映射
  2. 在servlet映射中,它*.do在url-pattern中找到.如果它发现采用servlet的名称.并检查相应的课程.在servlet部分.那个班是 ActionServlet.
  3. ActionServlet是Struts模块体系结构的控制器.在Action servlet中有服务方法.在那个方法中我们创建了 RequestPrecessor类实例
  4. Service(req,res) RequestPrecessor rp = new RequestPrecessor();
  5. 我们RequestProcessor通过实例调用类的进程方法rp.process(req,res)
  6. 在请求处理器类中,具有req,res参数的处理方法.然后它在这个类中有1个条件.那种情况总是如此.因为这是虚拟方法.

在这种情况下,有6个步骤正在处理中

  1. 在中创建一个动作映射实例Struts- Config.xml.它将保留动作映射路径,值,类型转发等所有细节validation=true/false,input ="*.jsp"这些是创建的实例
  2. 然后它将创建Form类实例,然后检查动作映射的名称和表单名称是否重合如果相同它将创建表单实例
  3. 然后它将转到ActionMapping例如提及或不是 validate =true/false如果错误它将不执行此步骤否则它将执行此步骤.
  4. 然后它将创建动作实例
  5. 接下来它将执行execute Method的四个参数,它将返回 ActionErrors实例.如果它不是空的.它将转到错误页面,否则它将到达相应的页面.否则,如果它是空的,如果将更进一步并在jsp视图中显示页面的相应值.这是struts流.