Struts的Action接口---(2)Method属性方法调用。

本文介绍了Struts框架中通过struts.xml配置文件使用Method属性来调用不同Action方法的技术细节。利用该特性可以增强安全性并减少动态方法调用的风险。文章通过具体的示例代码展示了如何配置和实现这一功能。

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

Method 即通过 struts.xml的action配置的method属性实现方法的调用。

优点:避免动态方法调用的安全隐患

缺陷:导致大量的Action配置

login.jsp

<body>
	<!-- 动态调用:即通过struts.xml配置的action name属性寻找Action类  !后面接你想动态调用的方法 -->
	<form action="login">
		<div align="center">
			姓名<input type="text" name="name" value="admin" /><br /> 密码<input
				type="text" name="pwd" value="123" /><br />
			<button type="submit">login登录</button>
		</div>
	</form>
	<form action="register">
		<div align="center">
			姓名<input type="text" name="name" value="admin" /><br /> 密码<input
				type="text" name="pwd" value="123" /><br />
			<button type="submit">register登录</button>
		</div>
	</form>
	<form action="exe">
		<div align="center">
			姓名<input type="text" name="name" value="admin" /><br /> 密码<input
				type="text" name="pwd" value="123" /><br />
			<button type="submit">默认登录</button>
		</div>
	</form>
</body>

struts.xml


<struts>
	<!-- 解决中文乱码 -->
	<constant name="struts.i18n.encoding" value="UTF-8" />
	<!-- 讲风格设为简洁 -->
	<constant name="struts.ui.theme" value="simple" />
	<package name="default" namespace="/" extends="struts-default">
		<!-- 通过method属性来访问方法。相当于class的补充。 -->
		<!-- 优点:避免动态方法的安全隐患 -->
		<!-- 缺点:需要action配置多 -->
		<action name="register" class="com.LoginAction" method="register">
			<result>/MyJsp.jsp</result>
		</action>
		<action name="login" class="com.LoginAction" method="login">
			<result>/MyJsp.jsp</result>
		</action>
		<action name="exe" class="com.LoginAction" method="execute">
			<result>/page/MyJsp.jsp</result>
		</action>
	</package>

class LoginAction

package com;

import com.opensymphony.xwork2.Action;
/**
 * ACtion接口方法调用之 method属性
 * @author Administrator
 *
 */
public class LoginAction implements Action {
	private String name;
	private String pwd;
	private String message;

	public String execute() throws Exception {
		message = "execute登录";
		return SUCCESS;
	}
	public String login() {
		message = "login登录";
		if ("admin".equals(name) && "123".equals(pwd))
			return "success";
		else
			return "fail";
	}

	public String register() {
		message = "register登录";
		if ("admin".equals(name) && "123".equals(pwd))
			return "success";
		else
			return "fail";
	}

//	setter getter 省略

登录验证界面 MyJsp.jsp

<body>
  <%@ taglib prefix="s" uri="/struts-tags" %>
    ${message}${name}
  </body>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值