基于struts研究传值问题

1.新建项目 struts,取名struts,点击finsh后,然后将之前项目下的jar包copy到该项目下。

2.新建packege  action,new一个class StudentAction并继承至ActionSupport点击finsh。

3.打开StudentAction然后点击右键选择source选择@override/Implement Method选择excute()选择重写excute方法。具体代码如下:

package action;

import com.opensymphony.xwork2.ActionSupport;

public class StudentAction extends ActionSupport {

/**
* 
*/
private static final long serialVersionUID = 1L;
private String stuName;

public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
@Override
public String execute() throws Exception {
if(true){
return "success";
}else 
return "error";
}
}

4.配置struts.xml文件,需要注意action 的name属性值是多少,尽量不要用敏感词“login” 以及class,具体代码如下:

<action name="studentlogin" class="action.StudentAction">
<result name="success">/demo.jsp</result>
</action>

5.编辑首页 index.jsp,这里的action必须要与structs.xml中的name一致,否则action 将找不到对应的对象,报错。当点击按钮“点击”时,即可跳转到客户想要的界面 ,具体代码如下:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<html>
<body>
<form action="studentlogin.action" method="post">
<input type="submit" value="点击"/><br>
</form>
</body>
</html>

6.编辑demo.jsp,显示三种传值方法的主要界面;由此可知,赋值方法不一,但是万变不离其宗,只要不要漏掉重要的属性:value,即可传值成功。具体代码如下:

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>bean标签</title>
</head>

<body>
<s:bean name="action.StudentAction" id="stu">

在bean标签内部可以直接输出:<br>

<s:param name="stuName">刘备</s:param>

(1)第一种赋值方式:

<s:property value="stuName"/><br>

(2)第二种赋值方式:

<!-- 该方法为参数赋值字符串必须加引号 -->
<s:param name="stuName" value="'刘备'"></s:param>
<s:property value="stuName"/>
</s:bean>
<br>

在bean标签外部利用id取值:

<s:property value="#stu.stuName"/>
</body>

7.调试,运行:

部署项目在tomcat下,在地址栏输入将要运行的项目struts,此时显示的结果只有“点击”一个按钮,是预想的效果。然后单击 “点击” 按钮;从地址栏中可以看到 tomcat服务器访问的是action,以及赋值成功

8.总结

我们总是把这些很简单的问题复杂化,这一切都是由于对该标签不是很熟悉,导致在写代码时经常犯低级错误,对于该标签的关键点也把握不住,在以后的时间里我希望自己能改掉这一系列问题。

原文地址:https://www.cnblogs.com/arriw/p/5354042.html