在struts中提交后重置表单数据

时间:2016-08-10 19:35:21

标签: javascript jsp

我对struts很新,应用程序正在使用struts,每次提交表单时都会提交旧值,除非我通过从下拉列表中选择不同的选项来更改值,否则我会转到其他选项卡来再次返回相同的选项卡,然后在这种情况下值重置..

在我的场景中,我想要实现的是在执行一次后重置一些值。在这些值的基础上,我必须搜索一些数据并在表单上显示它,如果我不删除这个值它呢。

这是我的执行方法:

public class ListTerminalDevicesAction extends BaseQueryAction {

  private RetailerService retailerService;
  private DataBinder<OmposTerminalQuery> dataBinder;
  private TerminalDeviceService terminalDeviceService;
  private ImportCSVService importCSVService;

  @Inject
  public void setImportCSVService(ImportCSVService importCSVService) {
    this.importCSVService = importCSVService;
  }

  @Inject
  public void setRetailerService(final RetailerService retailerService) {
    this.retailerService = retailerService;
  }

  @Inject
  public void setTerminalDeviceService(final TerminalDeviceService terminalDeviceService) {
    this.terminalDeviceService = terminalDeviceService;
  }

  @Inject
  private DataBinder<OmposTerminalQuery> getDataBinder() {
    if (dataBinder == null) {
      final BeanBinder<OmposTerminalQuery> binder = BeanBinder.instance(OmposTerminalQuery.class);
      binder.registerBinder("pageParameters", DataBinderHelper.pageBinder());
      binder.registerBinder("retailer", PropertyBinder.instance(OmposRetailer.class, "retailer"));
      binder.registerBinder("branch", PropertyBinder.instance(OmposBranch.class, "branch"));
      binder.registerBinder("store", PropertyBinder.instance(OmposStore.class, "store"));
      binder.registerBinder("terminalId", PropertyBinder.instance(String.class, "terminalId"));
      binder.registerBinder("terminalSearchByTid",
          PropertyBinder.instance(String.class, "terminalSearchByTid"));
      dataBinder = binder;
    }
    return dataBinder;
  }

  @Override
  protected void executeQuery(ActionContext context, QueryParameters queryParameters) {
    final OmposTerminalQuery query = (OmposTerminalQuery) queryParameters;
    query.setResultType(ResultType.PAGE);

    // List<OmposRetailer> retailerList = retailerService.searchRetailers();
    // context.getRequest().setAttribute("retailers", retailerList);

    // if (query.getRetailer() != null) {
    // OmposBranchQuery branchQuery = new OmposBranchQuery();
    // branchQuery.setOmposRetailer(query.getRetailer());
    // List<OmposBranch> branchList = retailerService.searchBranchByRetailer(branchQuery);
    // context.getRequest().setAttribute("branches", branchList);

    // if (query.getBranch() != null) {

    // OmposStoreQuery storeQuery = new OmposStoreQuery();
    // storeQuery.setOmposBranch(query.getBranch());
    // List<OmposStore> storeList = retailerService.searchStore(storeQuery);
    List<OmposStore> storeList = retailerService.searchStores();

    context.getRequest().setAttribute("stores", storeList);

    if (query.getStore() != null) {

      ListTerminalDevicesForm form = context.getForm();

      final FormFile uploadTerminal = form.getUploadTerminal();
      if (uploadTerminal != null && uploadTerminal.getFileSize() != 0) {
        try {
          ImportCSVDTO uploadDtoForTerminal = new ImportCSVDTO();
          // uploadDtoForTerminal.setRetailer(query.getRetailer());
          // uploadDtoForTerminal.setBranch(query.getBranch());
          uploadDtoForTerminal.setStore(query.getStore());

          int records = importCSVService.importCSV(TMSEntity.TERMINAL, uploadDtoForTerminal,
              uploadTerminal.getInputStream());
          if (records > 0) {
            context.getRequest().setAttribute("uploadMsgTerminal", records);
          }
        } catch (final UnknownColumnException | IOException e) {
          // context.sendError("general.error.csv.unknownColumn",
          // e.getColumn());
        } finally {
          uploadTerminal.destroy();
        }
      }

      OmposTerminalQuery terminalQuery = new OmposTerminalQuery();
      List<OmposTerminal> terminalList = null;
      if (query.getStore() != null && query.getTerminalSearchByTid() != null) {
        terminalQuery.setTerminalSearchByTid(query.getTerminalSearchByTid());
        terminalQuery.setStore(query.getStore());
        terminalList = terminalDeviceService.searchTerminalByTidAndStoreId(terminalQuery);
      } else {
        terminalQuery.setStore(query.getStore());
        terminalList = terminalDeviceService.searchByStore(terminalQuery);
      }
      context.getRequest().setAttribute("terminals", terminalList);

      if (query.getTerminalId() != null) {
        OmposTerminal omposTerminal = new OmposTerminal();
        omposTerminal.setTerminalId(query.getTerminalId());
        OmposDeviceQuery deviceQuery = new OmposDeviceQuery();
        deviceQuery.setOmposTerminal(omposTerminal);

        final FormFile uploadDevice = form.getUploadDevice();
        if (uploadDevice != null && uploadDevice.getFileSize() != 0) {
          try {
            ImportCSVDTO uploadDtoForDevice = new ImportCSVDTO();
            uploadDtoForDevice.setRetailer(query.getRetailer());
            uploadDtoForDevice.setBranch(query.getBranch());
            uploadDtoForDevice.setStore(query.getStore());
            uploadDtoForDevice.setTerminal(new OmposTerminal(null, query.getTerminalId(), null));

            int records = importCSVService.importCSV(TMSEntity.DEVICE, uploadDtoForDevice,
                uploadDevice.getInputStream());
            if (records > 0) {
              context.getRequest().setAttribute("uploadMsgDevice", records);
            }
          } catch (final UnknownColumnException | IOException e) {
            // context.sendError("general.error.csv.unknownColumn",
            // e.getColumn());
          } finally {
            uploadDevice.destroy();
          }
        }

        context.getRequest().setAttribute("terminalId", query.getTerminalId());

        List<OmposDevice> deviceList = terminalDeviceService.searchByTerminal(deviceQuery);
        context.getRequest().setAttribute("devices", deviceList);

      }
    }

    // }

    // }

  }

  @Override
  protected QueryParameters prepareForm(ActionContext context) {
    final ListTerminalDevicesForm form = context.getForm();
    final OmposTerminalQuery query = getDataBinder().readFromString(form.getQuery());
    return query;
  }

  @Override
  protected boolean willExecuteQuery(final ActionContext context,
      final QueryParameters queryParameters) throws Exception {
    return true;
  }

}

我必须在执行后重置“terminalSearchByTid”字段。

1 个答案:

答案 0 :(得分:1)

覆盖Struts&#39;动作重置()方法

相关问题