Не получать данные формы в действии
Я новичок в распорках 2, что я делаю, чтобы создать форму в распорках 2 и показать введенное значение на другой странице. Но когда я отправляю значения на странице step1.jsp, она не отображается в profileuplaoded.jsp
Вот моя страница JSP, на которой я ввожу значения step1.jsp
<%@ taglib uri="/struts-tags" prefix="s" %>
<h2>User Profile upload form</h2>
<s:form action="upload" method="post">
<s:textfield name="fname" label="First Name"></s:textfield>
<s:textfield name="lname" label="Last Name"></s:textfield>
<!-- <s:radio name="mstatus" label="Martial Status" list="{'Single','Married'}">
</s:radio><s:radio name="gender" label="Gender" list="{'male','female'}"></s:radio>-->
<s:submit value="upload profile" align="center"></s:submit>
</s:form>
вот мой другой jsp, на котором я хочу показать введенные значения profileuploaded.jsp
<%@ taglib uri="/struts-tags" prefix="p" %>
<h2>Profile uploaded sucessfully</h2>
First Name:<p:property value="fname"/><br/>
Last Name:<p:property value="lname"/><br/>
Martial status:<p:property value="mstatus"/><br/>
Gender:<p:property value="gender"/><br/>
вот мой файл java uploadprofile.java
package com.javapoint;
import com.opensymphony.xwork2.ActionSupport;
public class UploadProfile extends ActionSupport {
/**
*
*/
private static final long serialVersionUID = 1L;
private String fname;
private String lname;
//private String mstatus;
//private String gender;
public String getfname() {
System.out.println("inside getfname");
return fname;
}
public void setfname(String fname) {
System.out.println("inside getfname");
System.out.println("the firstname set is "+fname);
this.fname = fname;
}
public String getlname() {
return lname;
}
public void setlname(String lname) {
this.lname = "lname";
System.out.println("the lastname set is "+ lname);
}
/*public String getMstatus() {
return mstatus;
}
public void setMstatus(String mstatus) {
this.mstatus = mstatus;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}*/
public String execute()throws Exception{
System.out.println("inside execute");
if(fname!=null){
return "profileuploaded";
}else{
return "error";
}
}
}
вот мой struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts
Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="product" class="com.javapoint.Product">
<result name="success">welcome.jsp</result>
</action>
<action name="upload" class="com.javapoint.UploadProfile">
<result name="profileuploaded">ProfileUploaded.jsp</result>
<result name="error">index.jsp</result>
</action>
</package>
</struts>
а вот мой web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>step1.jsp</welcome-file>
</welcome-file-list>
</web-app>
Пожалуйста, помогите мне в этом, чтобы я мог начать изучение Struts 2.
1 ответ
Ваши геттеры и сеттеры имеют неправильные имена.
Они должны быть, например, camelCased, если у вас есть свойство с именем
private String fname;
у вас должны быть следующие аксессоры / мутаторы:
public String getFname() {
return fname;
}
public void setFname(String fname) {
this.fname = fname;
}
с заглавными буквами F
,
Чтобы предотвратить подобные ошибки, используйте IDE для их генерации; в Eclipse нажмите ALT SHIFT S, затем создайте геттеры и сеттеры