[原]Java web学习系列之 Java web开发中的Struts框架结构
2012-02-28 13:10 雪夜&流星 阅读(366) 评论(0) 编辑 收藏 举报Control层
Action,这个类通常由用户提供,该控制器负责接收来自ActionServlet的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给JSP页面显示。
Model部分
由ActionForm和JavaBean组成,其中ActionForm用于封装用户的请求参数,封装成ActionForm对象,该对象被ActionServlet转发给Action,Action根据ActionFrom里面的请求参数处理用户的请求。
JavaBean则封装了底层的业务逻辑,包括数据库访问等。
View部分
该部分采用JSP实现。
Struts提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与Model的有效交互,并增加了现实功能。
添加Struts架包支持:
添加完架包就会自动生成一个Struts—config.xml配置文件
<struts-config>
//显示模块数据
<form-beans />
<global-exceptions />
//用来指示操作转移的对象
<global-forwards />
//帮助控制器将请求映射到操作
<action-mappings />
<message-resources parameter="org.clarck.struts.ApplicationResources" />
</struts-config>
接着在视图窗中添加action:右键—>新建—>action、form、jsp
struts—config会出现对应的配置信息:
<struts-config>
<form-beans >
<form-bean name="loginForm" type="org.clarck.struts.form.LoginForm" />
</form-beans>
<global-exceptions />
<global-forwards /> //属性 描述
<action-mappings > //映射路径
<action
attribute="loginForm" //作用域名称
input="/login.jsp" // input 输入表单的路径
name="loginForm" //名称
path="/login" //Action类的相对路径
scope="request" //ActionForm bean的作用域(请求或会话)
type="org.clarck.struts.action.LoginAction"> //连接到本映射的Action类的全称(可有包名)
<forward name="index" path="/index.jsp" /> //操作类访问ActionForward时所用的逻辑名和响应转发的目标资源的路径
</action>
</action-mappings>
<message-resources parameter="org.clarck.struts.ApplicationResources" />
</struts-config>
LoginAction类中的相应操作:
public class LoginAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub
//获得上下文请求参数
String name=request.getParameter("username");
String pwd=request.getParameter("password");
//转发
return mapping.findForward("index");
}
}
笔记记于:2010-8-25 13:54
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本