Java 表单操作默认为';行动';属性';s字面值
我在制作web项目时试图使用struts2框架,但遇到了标题问题。我是stackoverflow新手,因此如果代码难以阅读,请原谅我。 这是我的struct.xmlJava 表单操作默认为';行动';属性';s字面值,java,jsp,struts2,Java,Jsp,Struts2,我在制作web项目时试图使用struts2框架,但遇到了标题问题。我是stackoverflow新手,因此如果代码难以阅读,请原谅我。 这是我的struct.xml <struts> <package name="default" extends="struts-default" namespace="/"> <action name="login" class="com.mxl.actions.LoginAction"> <r
<struts>
<package name="default" extends="struts-default" namespace="/">
<action name="login" class="com.mxl.actions.LoginAction">
<result name="success">/success.jsp</result>
<result name="input">/login.jsp</result>
</action>
</package>
当我单击“在服务器上运行”时,项目看起来很好,当我输入用户名和密码时,它会显示为“404未找到”,URL会转到
localhost:8080/Struts\u try/login
我希望有人能帮我。假设您的操作类中有一个成员变量name
调用操作时,默认配置映射调用setter的http参数。例如,如果您调用localhost:8080/Struts\u try/login?name=myName
Struts2将实例化您的操作并调用方法setName(“myName”)
(如果您的属性不是字符串,Struts2将尝试转换它)
在操作执行之后,当结果显示在视图中(比如JSP页面)时,您可以编写
,Struts2将调用操作的方法getName()
因此,重要的是使用getter和setter设置和获取值,而不是直接使用成员变量。我已将所需的jar文件放入
WEB-INF/lib
并修复了构建路径。好奇的是,我的struct.xml是键入错误吗?这是我的strust.xml,我在.java文件中添加了getter和setter,但仍然不起作用。
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<init-param>
<param-name>struts.i18n.encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
</web-app>
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<s:form action="login" method="post">
<s:textfield name="username" label="User Name"
cssStyle="width:160px;height:26px;" />
<s:password name="password" label="Pass Word"
cssStyle="width:160px;height:26px;" />
<s:submit value="Sign in" />
</s:form>
package com.mxl.actions;
import com.opensymphony.xwork2.ActionSupport;
public class LoginAction extends ActionSupport{
private String username;
private String password;
@Override
public String execute() throws Exception {
if(username.equals("1") && password.equals("111")){
return SUCCESS;
}else{
return INPUT;
}
}
public String getName() {
return username;
}
public void setName(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}