我最近尝试学习java和struts。我想从下拉列表中传递所选值,但我在操作中收到的所有值均为空
这是我的密码
我的jsp中的下拉列表
<s:select list="UrgencyList" listKey="name" listValue="name"
key="urgency" name="urgency" emptyOption="false" headerKey="12" required="true"
headerValue="--------------------------------------------------------" />
<font class="ui-widget-R"><s:property value="errors['urgency'][0]" /></font>
我的xml, SavSharing
我的按钮是否使用了post操作
<action name="SavSharing" class="com.ao.qshare.form.Sharing" method="Save">
<exception-mapping exception="org.apache.commons.fileupload.FileSizeLimitExceededException"
result="error" />
<result name="success">/qs/sharing.jsp</result>
<result name="input">/qs/sharing.jsp</result>
<interceptor-ref name="basicStack"/>
<interceptor-ref name="mydefault" />
</action>
public class Sharing extends ActionSupport {
public String Save() throws Exception {
String result = "";
SharingSqlManger sql = null;
SiteDeploySqlManger sSql=null;
try {
Log.info(getClass(), "-----Save start-----");
con = DbConnection.getDbConnection();// get account
con.setAutoCommit(false);
sql=new SharingSqlManger(con);
sSql= new SiteDeploySqlManger(con);
ActionContext actionContext = ActionContext.getContext();
Map<?,?> data=actionContext.getParameters();
String tp=SharingUtil.getString(data.get("tp"));
attachs=SharingUtil.getFile(this.sno,SharingConstants.sharing);
boolean isSameFile=SharingUtil.isSameFile(SharingUtil.getFileString(attachs),this.getUploadFileName());
// boolean isSameFile=SharingUtil.isSameFile(this.attach,this.getUploadFileName());
//save
this.setPara();
String oldStatus=entity.getStatus();
if (isSameFile){
this.addActionMessage(SharingConstants.messFileExists);
mess.add(SharingConstants.messFileExists);
this.setEntityDesc(sql,sSql);
this.setEntity(entity);
init(sql);
isValidate=false;
result = INPUT;
}else{
//upload!=null,do upload
if (!GenericValidator.isBlankOrNull(this.getUploadFileName())) {
this.setAttach(this.attach+this.getUploadFileName()+";");
entity.setAttach(this.attach);
}
if (tp.equals("File")){
if (this.lengthValidate() && this.isSaveValidate(sql)){
if (status.equals(SharingConstants.deployStatusKey)) {
SharingEntity shEntity = sql.getSharing(sno, "</p>");
entity.setAlertSite(shEntity.getAlertSite());
entity.setAlertDept(shEntity.getAlertDept());
entity.setDeployDept(shEntity.getDeployDept());
entity.setDeploySite(shEntity.getDeploySite());
entity.setDSite(shEntity.getDSite());
entity.setDDept(shEntity.getDDept());
//Start CR-2014-01727 Kevin
entity.setAlertCopy(shEntity.getAlertCopy());
entity.setDeployCopy(shEntity.getDeployCopy());
//End CR-2014-01727 Kevin
}
//save
sno = sql.save(entity,SharingConstants.saveDocument,SharingConstants.sharing,oldStatus);
this.setSno(sno);
entity=sql.getSharing(sno,"</p>");
this.setEntityDesc(sql,sSql);
this.setEntity(entity);
if (upload != null)
SharingUtil.getFile(upload, this.getUploadFileName(), sno,
SharingConstants.sharing);
init(sql);
con.commit();
Log.info(getClass(), "-----Save end-----");
isValidate=true;
result = SUCCESS;
}else{
this.setEntityDesc(sql,sSql);
this.setEntity(entity);
init(sql);
isValidate=false;
result = INPUT;
}
}else{
if (this.status.equals(SharingConstants.newStatusKey)){
this.setStatus(SharingConstants.drafStatusKey);
if (this.lengthValidate() && this.isSaveValidate(sql)){
entity.setStatus(SharingConstants.drafStatusKey);
//save
sno = sql.save(entity,SharingConstants.saveDocument,SharingConstants.sharing,oldStatus);
Log.info(getClass(), sno + " status:"+this.getStatusName());
Log.info(getClass(), sno + " save finished");
this.setSno(sno);
entity=sql.getSharing(sno,"</p>");
this.setEntityDesc(sql,sSql);
this.setEntity(entity);
init(sql);
con.commit();
if (upload != null)
SharingUtil.getFile(upload, this.getUploadFileName(), sno,
SharingConstants.sharing);
Log.info(getClass(), "-----Save end-----");
isValidate=true;
result = SUCCESS;
}else{
this.setEntityDesc(sql,sSql);
this.setEntity(entity);
init(sql);
isValidate=false;
result = INPUT;
}
}else{
if (status.equals(SharingConstants.deployStatusKey)){//deploy
if (this.lengthValidate() && isValidate(SharingConstants.Deployed,sql)) {
SharingEntity shEntity=sql.getSharing(sno,"</p>");
entity.setAlertSite(shEntity.getAlertSite());
entity.setAlertDept(shEntity.getAlertDept());
entity.setDeployDept(shEntity.getDeployDept());
entity.setDeploySite(shEntity.getDeploySite());
entity.setDSite(shEntity.getDSite());
entity.setDDept(shEntity.getDDept());
//Start CR-2014-01727 Kevin
entity.setAlertCopy(shEntity.getAlertCopy());
entity.setDeployCopy(shEntity.getDeployCopy());
//End CR-2014-01727 Kevin
sno=sql.save(entity,SharingConstants.saveDocument,SharingConstants.sharing,oldStatus);
this.setSno(sno);
entity=sql.getSharing(sno,"</p>");
this.setEntityDesc(sql,sSql);
this.setEntity(entity);
init(sql);
con.commit();
if (upload != null)
SharingUtil.getFile(upload, this.getUploadFileName(), sno,
SharingConstants.sharing);
Log.info(getClass(), "-----Save end-----");
isValidate=true;
result = SUCCESS;
}else{
this.setEntityDesc(sql,sSql);
this.setEntity(entity);
init(sql);
isValidate=false;
result = INPUT;
}
}else{
if (this.lengthValidate() && isSaveValidate(sql)) {
sno=sql.save(entity,SharingConstants.saveDocument,SharingConstants.sharing,oldStatus);
this.setSno(sno);
entity=sql.getSharing(sno,"</p>");
this.setEntityDesc(sql,sSql);
this.setEntity(entity);
init(sql);
con.commit();
if (upload != null)
SharingUtil.getFile(upload, this.getUploadFileName(), sno,SharingConstants.sharing);
Log.info(getClass(), "-----Save end-----");
isValidate=true;
result = SUCCESS;
}else{
this.setEntityDesc(sql,sSql);
this.setEntity(entity);
init(sql);
isValidate=false;
result = INPUT;
}
}
}
}
}
if (!tp.equals("Exit")){
isValidate=false;
}
} catch (SizeLimitExceededException e) {
Log.info(this.getClass(), "SizeLimitExceededException:" + e.getMessage());
mess.add("SizeLimitExceededException:"+e.getMessage());
this.setStatusName(SharingConstants.New);
result=INPUT;
if (con!=null) con.close();
} catch (IOException e) {
Log.info(this.getClass(), "IOException:" + e.getMessage());
mess.add("IOException:"+e.getMessage());
this.setStatusName(SharingConstants.New);
result=INPUT;
if (con!=null) con.close();
} catch (FileUploadException e) {
Log.info(this.getClass(), "FileUploadException:" + e.getMessage());
// this.addActionError("Exception:"+e.getMessage());
mess.add("FileUploadException:"+e.getMessage());
this.setStatusName(SharingConstants.New);
result=INPUT;
if (con!=null) con.close();
} catch (Exception e) {
Log.info(this.getClass(), "Save exception:" + e.getMessage());
mess.add("Exception:"+e.getMessage());
this.setStatusName(SharingConstants.New);
result=INPUT;
// this.addActionError("Exception:"+e.getMessage());
if (con!=null) con.close();
}finally{
// this.setEntityDesc(sql,sSql);
// this.setEntity(entity);
//
// init(sql);
// isValidate=false;
if (con!=null) con.close();
}
return result;
}
private String urgency="";
public String geturgency() {
return urgency;
}
public void seturgency(String urgency) {
this.urgency = urgency;
}
}
我想我应该从jsp中获取值,并将其应用到我的操作中,但没有实现我的期望。
注意:除了我添加的紧急下拉列表外,我在代码中删除了其他文本字段和下拉列表。
在调试模式下,控制台上也没有发现异常或错误
1条答案
按热度按时间nwo49xxi1#
你的
urgency
setter名称不正确;它们应该遵循javabean命名约定,并且setUrgency
/getUrgency
.无关的:
操作方法应命名为
save
遵循java命名约定。应通过设置器(或)检索所有参数
ModelDriven
),无需在此访问操作上下文。大多数异常处理都可以通过单个多捕获来处理。
这个动作在一个方法中做得太多了:重构。
一般来说,二传手应该只是设定。如果setter所做的远远不止设置,那么它应该有一个更明显的名称。
还有更多,但现在已经足够了:)