Java SpringWebflow中的数据绑定问题
我是webflow的新手,在这里我面临几个问题。基本上,我希望将一个变量绑定到视图状态选择选项集,并在下一个视图中使用它。为此,我使用了以下代码Java SpringWebflow中的数据绑定问题,java,spring,data-binding,spring-webflow,autowired,Java,Spring,Data Binding,Spring Webflow,Autowired,我是webflow的新手,在这里我面临几个问题。基本上,我希望将一个变量绑定到视图状态选择选项集,并在下一个视图中使用它。为此,我使用了以下代码 <var name="flowScope.jobIdString" class="java.lang.String" /> <input name="userId" type="java.lang.Long" /> <on-start> <set name="userId" value="1234"
<var name="flowScope.jobIdString" class="java.lang.String" />
<input name="userId" type="java.lang.Long" />
<on-start>
<set name="userId" value="1234"></set>
</on-start>
<view-state id="startJob" view="/WEB-INF/jsp/startJob.jsp">
<on-entry>
<evaluate expression="jobService.getAllJobsForUser(userId)"
result="flowScope.jobs">
</evaluate>
</on-entry>
<transition on="createNew" to="createNewJob" />
<transition on="editJob" to="editJob" />
</view-state>
<action-state id="createNewJob">
<evaluate expression="patientBean" result="flowScope.patient" />
<transition to="patientinfo" />
</action-state>
<action-state id="editJob">
<evaluate expression="patientService.getPatientInfo(jobId)"
result="flowScope.patient" />
<transition to="patientinfo" />
</action-state>
<view-state id="patientinfo" model="patient"
view="/WEB-INF/jsp/patientInfo.jsp">
</view-state>
}
这是我的工作服务
public class JobService {
public List<Job> getAllJobsForUser(Long userId) {
ArrayList<Job> jobList = new ArrayList<Job>();
Job job1 = new Job();
job1.setId((long) 1234);
job1.setName("Test Job Name");
Job job2 = new Job();
job2.setId((long) 1235);
job2.setName("Test Job Name 2");
jobList.add(job1);
jobList.add(job2);
return jobList;
}
您的流进入视图startjob.jsp,它是启动点。从这里开始,当您单击指定的按钮时,swf不知道如何恢复流程。因此,为了恢复流程,请在startjob.jsp中包含以下内容:
<input type="hidden" name="_flowExecutionKey" value="${flowExecutionKey}">
<webflow:flow-registry id="flowRegistry">
<webflow:flow-location path="/WEB-INF/flow/webflow-flow.xml"
id="webflow" />
</webflow:flow-registry>
<webflow:flow-executor id="flowExecutor"
flow-registry="flowRegistry" />
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping">
<property name="flowRegistry" ref="flowRegistry" />
<property name="order" value="0" />
</bean>
<bean class="org.springframework.webflow.mvc.servlet.FlowHandlerAdapter">
<property name="flowExecutor" ref="flowExecutor" />
</bean>
<bean id="jobService" class="com.b.webfolwprototype.service.JobService" />
<bean id="patientService" class="com.brandix.webfolwprototype.service.PatientService"></bean>
<bean id="patientBean" class="com.b.webfolwprototype.model.Patient"
scope="prototype" />
<bean id="jobBean" class="com.b.webfolwprototype.model.Job"
scope="prototype" />
public class PatientService {
public void save(Patient patient) {
System.out.println("save patinet");
}
public Patient getPatientInfo(Long jobId){
Patient patient = new Patient();
patient.setAge(35);
patient.setName("test name");
return patient;
}
public class JobService {
public List<Job> getAllJobsForUser(Long userId) {
ArrayList<Job> jobList = new ArrayList<Job>();
Job job1 = new Job();
job1.setId((long) 1234);
job1.setName("Test Job Name");
Job job2 = new Job();
job2.setId((long) 1235);
job2.setName("Test Job Name 2");
jobList.add(job1);
jobList.add(job2);
return jobList;
}
public class Job implements Serializable {
private static final long serialVersionUID = 4979685043689356058L;
private Long id;
private String name;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Patient implements Serializable {
private static final long serialVersionUID = -1541400280884340541L;
private String name;
private int age;
private Long patientId;
public Long getPatientId() {
return patientId;
}
public void setPatientId(Long patientId) {
this.patientId = patientId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int i) {
this.age = i;
}
}
<input type="hidden" name="_flowExecutionKey" value="${flowExecutionKey}">