ActionWildcard通配符配置

本文介绍如何在Struts2框架中使用通配符进行配置,以减少配置文件的复杂度。通过示例展示了如何定义StudentAction和TeacherAction,并在struts.xml中配置动态方法调用及结果页面。

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

Wildcard:通配符

使用通配符将配置量降到最低,一定要遵守约定优于配置的原则

操作:

写两个Action:

(1)StudentAction:

package wildcard.action;

import com.opensymphony.xwork2.ActionSupport;

public class StudentAction extends ActionSupport {
	public String add() {
		return "success";
	}

	public String delete() {
		return "success";
	}

}
(2)TeacherAction:

package wildcard.action;

import com.opensymphony.xwork2.ActionSupport;

public class TeacherAction extends ActionSupport {
	public String add()
	{
		return "success";
	}
	public String delete()
	{
		return "success";
	}

}
struts.xml配置:

<constant name="struts.enable.DynamicMethodInvocation" value="true" />
	<constant name="struts.devMode" value="true" />
	<package name="front" namespace="/front" extends="struts-default">

                <action name="student*" class="wildcard.action.StudentAction"
			method="{1}">
			<result name="success_{1}">
				/Student{1}_success.jsp
			</result>
		</action>
		<action name="*_*" class="wildcard.action.{1}Action" method="{2}">
		    <result >
		    /{1}_{2}_success.jsp
		    </result>
		</action>

运行:






运行时依旧namespace后面加上action的name属性,第一个*找到Action,第二个*找到方法,两个*找到对应的jsp页面。

注意:

如果action的return返回字符串修改了,不是默认的"success",一定要在result标签的添加name属性,通配符表示一致。

ex:

package wildcard.action;

import com.opensymphony.xwork2.ActionSupport;

public class StudentAction extends ActionSupport {
	public String add() {
		return "success_add";
	}

	public String delete() {
		return "success_delete";
	}

}
xml里, 修改为:

                <action name="student*" class="wildcard.action.StudentAction"
			method="{1}" >
			<result name="success_{1}">
				/Student{1}_success.jsp
			</result>
		</action>







<think>好的,我需要帮助用户了解如何在PhpStudy中进行通配符配置。首先,我得回忆一下PhpStudy的基本操作和相关配置文件的路径。根据用户提供的引用资料,特别是引用[4]和引用[5],PhpStudy的虚拟主机配置通常在Apache的vhosts.conf文件中,而不是默认的httpd-vhosts.conf。另外,通配符配置涉及到域名泛解析,也就是将所有的子域名指向同一个服务器IP,这需要在DNS设置和服务器配置中同时处理。 首先,用户需要确认DNS解析是否已经设置好了泛解析,将*.example.com指向服务器IP,这部分通常是在域名注册商的控制面板中完成的。接下来,在PhpStudy中配置虚拟主机来接收所有子域名的请求。根据引用[4],PhpStudy的虚拟主机配置文件是Apache目录下的vhosts.conf,需要在这里添加一个带有通配符的ServerAlias,比如*.example.com。同时,确保DocumentRoot指向正确的目录,以便处理所有子域名的请求。 然后,可能需要检查Apache的模块是否启用,比如mod_rewrite,用来处理重写规则,这在引用[2]中提到过类似加载模块的操作。此外,配置完成后需要重启Apache服务使改动生效。另外,用户需要注意防火墙和端口设置,确保80和443端口开放,特别是如果启用SSL的话,还要参考引用[2]中关于SSL配置的部分,可能需要加载mod_ssl模块并配置证书。 最后,测试配置是否成功,可以通过访问不同的子域名来确认是否都指向了同一个目录。同时,提醒用户如果遇到问题,可以检查Apache的错误日志,路径通常在PhpStudy的安装目录下的logs文件夹里。整个过程需要步骤清晰,避免用户混淆配置文件的位置,确保每个步骤都正确无误。</think>### PhpStudy通配符配置步骤 在PhpStudy中配置通配符(泛解析)主要涉及**域名泛解析设置**和**虚拟主机配置**两部分。以下是具体操作流程: --- #### 一、域名泛解析设置(DNS层面) 1. **登录域名管理平台**(如阿里云、腾讯云等),进入域名解析设置页。 2. **添加解析记录**: - **记录类型**:选择`A记录`。 - **主机记录**:填写`*`(表示匹配所有子域名)。 - **记录值**:填写服务器IP地址[^5]。 - 保存后等待DNS生效(通常需几分钟到几小时)。 --- #### 二、PhpStudy虚拟主机配置 1. **打开PhpStudy主界面**,点击左侧菜单的`网站`。 2. **添加虚拟主机**: - **域名**:填写主域名,例如`example.com`。 - **端口**:默认`80`(HTTP)或`443`(HTTPS)。 - **根目录**:指定网站文件的存放路径(如`D:\www\example`)。 - **第二域名**:输入`*.example.com`(关键步骤,支持通配符)[^4]。 3. **保存配置**,并重启Apache/Nginx服务。 --- #### 三、验证配置 1. **创建测试文件**: - 在根目录(如`D:\www\example`)新建`index.php`,内容为`<?php echo $_SERVER['HTTP_HOST']; ?>`。 2. **访问子域名**: - 浏览器输入任意子域名(如`test.example.com`),若显示`test.example.com`,则通配符生效。 --- #### 四、注意事项 1. **配置文件位置**: - PhpStudy的虚拟主机配置保存在`Apache/conf/vhosts.conf`(而非默认的`httpd-vhosts.conf`)。 - 手动编辑时需确保语法正确,例如: ```apache <VirtualHost *:80> ServerName example.com ServerAlias *.example.com DocumentRoot "D:/www/example" </VirtualHost> ``` 2. **HTTPS支持**: - 若需启用HTTPS,需先配置SSL证书,并在域名解析中添加`A记录`指向服务器IP[^2]。 3. **防火墙与端口**: - 确保服务器开放80/443端口,避免访问被拦截。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值