您好我有两个JSP页面并且是引用相同的Struts Action类。当向前移动时,第二个JSP中可以使用第一个jsp页面中的值。但是当我单击后退按钮时,值为空。可以请你建议我有任何方法可以使用这些值前后行动。 在此先感谢。
第一个JSP:
<s:textarea name="incidentBean.description" id="descriptionId"
rows="2" cols="34" cssClass="textarea200" >
</s:textarea>
在我的第二个JSP中:
<s:textarea name="descriptionId" id="descriptionId" readonly="true"
value="%{incidentBean.description}"
rows="2" cols="34" cssClass="textarea200" cssStyle="background-color: #C0C0C0">
</s:textarea>
这是我的Action类
public class BCMCaptureInitialIncidentAction extends DefaultActionSupport {
private BCMInitialIncidentBean incidentBean;
private String descriptionId;
public BCMInitialIncidentBean getIncidentBean() {
return incidentBean;
}
public void setIncidentBean(BCMInitialIncidentBean incidentBean) {
this.incidentBean = incidentBean;
}
public String getDescriptionId() {
return descriptionId;
}
public void setDescriptionId(String descriptionId) {
this.descriptionId = descriptionId;
}
/**
* This method is used for preparing the data to pre-populate the Capture Initial Incident Screen
* @return String
* @param
* @exception BcmException
* @exception BCMDatabaseException
*/
public String prepareInitIncident(){
System.out.println("prepareInitIncident Entered");
if(incidentBean!=null)
System.out.println("prepareInitIncident description:"+incidentBean.getDescription());
return SUCCESS;
}
public String validateCaptureIncident(){
if(incidentBean!=null)
System.out.println("validateCaptureIncident description:"+incidentBean.getDescription());
return SUCCESS;
}
}
答案 0 :(得分:0)
你的意思是当你点击一些提交按钮然后它回到第一个jsp值不存在?
which values are you talking about?
第一个jsp值还是第二个jsp值?事情是在请求完成struts倾向于清除值栈,这是struts2请求处理周期的主要存储,对于新请求,它创建一个新的请求对象并将其放在值栈中。 如果您详细说明您的用例,则只能回答更多细节。
修改强>
根据评论 如果单击“提交”按钮,这些值和请求处理周期开始,struts2会将这些值放在值堆栈中,以便它们可用于该特定请求处理周期。 单击第二个jsp中的提交按钮意味着框架将创建一个新的请求对象,并将其放置在值堆栈中。 所以如果我们想让它们回到第一个jsp中,我们必须保持这些值。
**Edit2**
根据上一条评论,如果用户点击后退按钮,您必须将值移回第一个操作,所以这里有以下选项。
因为在第二个操作中,您显示了用户在文本区域中输入的值,因此当用户想要返回时,此值将被设置为descriptionId
属性。所以现在你可以做以下事情
<s:textarea name="incidentBean.description" id="descriptionId"
rows="2" cols="34" cssClass="textarea200" value="%{descriptionId}" >
</s:textarea>
第一次显示jsp时,请注意value="%{descriptionId}"
。