struts2 code-behind

本文介绍Struts2框架中code-behind的两种形式:默认映射与默认结果。默认映射允许直接访问未配置的JSP页面,而默认结果则自动匹配Action的返回视图到特定的JSP文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

code-behind在struts2里有两种表现形式:
1.Default mappings (默认映射):其实就是访问那些没有配置过Action的JSP页面,也能像访问Action那样访问。
比如说在项目${root}/leo/a.jsp 有这么一个a.jsp.
我可以在地址栏里输入:http://localhost:8080/项目名称/leo/a.action 来访问这个 a.jsp
效果与 http://localhost:8080/项目名称/leo/a.jsp是一样的。类似于咱们在welcome-file 那里定义的index,
这就是默认映射。

2.Default results (默认结果):其实就是无须显示的在struts-*.xml里配置那些返回 jsp, vm. ftl视图的Action。
比如说,我有一个以下配置文件, 没有result.
<package name="code" extends="struts-default" namespace="/code">
<action name="leo" class="code.LeoAction" />
</package>

Action文件是这样的:
package code;

import com.opensymphony.xwork2.ActionSupport;

public class LeoAction extends ActionSupport {

private static final long serialVersionUID = 1L;

private String flag = "";

public String getFlag() {
return flag;
}

public void setFlag(String flag) {
this.flag = flag;
}

public String execute() {
if (flag == null || flag.equals("")) {
this.addActionMessage("input message");
return INPUT;
} else if (flag != null && flag.equals("error")) {
this.addActionError("error happen");
return ERROR;
} else {
this.addActionMessage("I am leo");
return SUCCESS;
}
}

}

故意设置了一个 flag 来查看结果。 通过,http://localhost:8080/项目名称/leo/leo.action?flag=测试值
你会发现,
INPUT 对应 http://localhost:8080/项目名称/leo/leo-input.jsp
ERROR 对应 http://localhost:8080/项目名称/leo/leo-error.jsp
SUCCESS 对应 http://localhost:8080/项目名称/leo/leo-success.jsp

这就是默认结果的意思。

下面是codebehind的path示例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="false" />
<constant name="struts.i18n.encoding" value="UTF-8" />
<constant name="struts.action.extension" value="html" />
<constant name="struts.objectFactory" value="spring" />
<constant name="struts.custom.i18n.resources"
value="ApplicationResources,errors" />
<constant name="struts.multipart.maxSize" value="2097152" />
<constant name="struts.ui.theme" value="css_xhtml" />
<constant name="struts.codebehind.pathPrefix"
value="/WEB-INF/pages/" />

<!-- Include Struts defaults -->
<include file="struts-default.xml" />

<!-- Configuration for the default package. -->
<package name="default" extends="struts-default">
<default-interceptor-ref name="defaultStack" />
<!-- DashBoard-->
<action name="dashBoard" method="showDashBoard"
class="com.flips.action.DashBoard">
<result name="success">dashBoard.jsp</result>
<interceptor-ref name="basicStack"/>
</action>

<action name="showRule" method="showRule"
class="com.flips.action.RuleImpl">
<result name="success">ruleList.jsp</result>
<interceptor-ref name="basicStack"/>

</action>

</package>
</struts>
### 回答1: 答:ASP.NET和Java Web的主要区别在于它们使用的编程语言不同。ASP.NET是使用C#和VB.NET,而Java Web则使用Java语言。此外,ASP.NET的代码常常更加简洁,但Java代码通常更容易扩展。 ### 回答2: ASP.NET和Java Web是两种主流的服务器端Web应用开发框架,它们有以下几个主要区别: 1. 语言:ASP.NET使用C#或Visual Basic作为主要开发语言,而Java Web使用Java语言进行开发。两种语言在语法和特性上有一些差异,开发者可以根据自己的喜好和经验选择适合自己的语言进行开发。 2. 平台依赖性:ASP.NET是基于Microsoft的Windows操作系统开发和运行的,而Java Web则可以在各种操作系统上运行,包括Windows、Linux和Mac等。这意味着ASP.NET开发者需要使用Windows系统进行开发和部署,而Java Web可以在各种平台上进行开发和部署。 3. 框架和工具:ASP.NET使用Microsoft的开发工具集,如Visual Studio等,配合.NET框架进行开发。而Java Web使用Eclipse、IntelliJ IDEA等工具进行开发,结合Java EE平台和各种开源框架,如Spring、Struts和Hibernate等。两种框架和工具集都提供了强大的开发和调试功能,开发人员可以根据自己的需求和偏好选择适合自己的开发环境。 4. 性能和扩展性:ASP.NET和Java Web在性能和扩展性方面有一定的差异。ASP.NET在Windows平台上表现出色,尤其在使用IIS等Microsoft服务器技术时具有较高的性能。Java Web则在跨平台和可扩展性方面具有优势,可以更容易地在不同的平台和环境下进行部署和扩展。 综上所述,ASP.NET和Java Web在语言、平台依赖性、框架和工具、性能和扩展性等方面存在一些区别。开发者可以根据自己的需求和条件选择适合自己的开发框架进行Web应用的开发。 ### 回答3: ASP.NET和Java Web是两种常用的Web开发技术,它们在很多方面有所不同。 首先,ASP.NET是由微软开发的,而Java Web是由Sun Microsystems(现在是Oracle)开发的。这就意味着它们使用的编程语言不同,ASP.NET主要使用C#和VB.NET,而Java Web使用Java语言。 其次,ASP.NET从根本上是Windows平台的一部分,它依赖于IIS(Internet Information Services)作为Web服务器。而Java Web是跨平台的,可以在各种操作系统上运行,如Windows、Linux和Mac OS。 另外,ASP.NET开发工具主要是Visual Studio,这是一个功能强大、集成度很高的开发环境。而Java Web开发可以使用多种集成开发环境,如Eclipse、NetBeans等,也可以使用纯文本编辑器。 此外,ASP.NET和Java Web的架构也不同。ASP.NET采用的是“代码后置”(Code Behind)的方式,即将HTML代码和服务器端代码分离,由CS或VB文件来处理逻辑。而Java Web一般采用的是MVC(Model View Controller)架构,它将应用分成Model(模型)、View(视图)和Controller(控制器)三层,提高了应用的可维护性和可伸缩性。 最后,两者的生态系统也有所不同。ASP.NET可以与其他微软技术无缝集成,如SQL Server、SharePoint等,而Java Web则更加开放,可以与各种开源技术进行整合,如Tomcat、Spring、Hibernate等。 综上所述,ASP.NET和Java Web在编程语言、平台依赖、开发工具、架构和生态系统等方面存在一些区别。选择使用哪种技术主要取决于项目需求、开发团队的技术栈和个人偏好等因素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值