路径和中文问题;
HelloAction.java
package com.zhang;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class HelloAction extends ActionSupport
{
private String name;
public String add1()
{
System.out.println("name="+name);
return SUCCESS;
}
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
input.jsp
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
<form action="<%=basePath%>user/user1!add1" method="post">
姓名:<input type="text" name="name"/>
<input type="submit" value="submit"/>
</form>
</body>
</html>
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
<constant name="struts.devMode" value="true" />
<constant name="struts.i18n.encoding" value="GBK" />
<package name="font" namespace="/user" extends="struts-default">
<action name="user" class="com.zhang.HelloAction">
<result >/index.jsp</result>
</action>
<action name="user1" class="com.zhang.HelloAction">
<result>/index.jsp</result>
</action>
</package>
</struts>
注意:
(1) 在input.jsp的form表单中,form的action属性用相对路径出错,应该加上 <%=basePath%>user/user1!add1";
(2) 在input.jsp中输入中文时,在后台会出现乱码,应该在struts.xml中加上: <constant name="struts.i18n.encoding" value="GBK" /> 来解决乱码(对struts2.1.6之后的版本有效);