Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Hibernate和spring将动态JSF表单保存到数据库中_Jsf_Spring Mvc_Primefaces - Fatal编程技术网

如何使用Hibernate和spring将动态JSF表单保存到数据库中

如何使用Hibernate和spring将动态JSF表单保存到数据库中,jsf,spring-mvc,primefaces,Jsf,Spring Mvc,Primefaces,我们正在使用JSF Primefaces 3.2。 我有一个模块,用户将创建一些动态字段与他自己的选择,如textfield,textarea,selectbox,复选框,单选按钮,然后一个表单将根据这些选定的字段生成。 我已经成功地创建了第一部分,其中用户正在创建表单,并根据自己的选择生成表单。但是现在我面临的问题是如何将这个表单保存到数据库中。 在这里,我附上了我的模块的一些代码,以便您能够轻松理解并快速找到解决方案 这里是JSF表单,在这里我使用动态方式生成了所有字段

我们正在使用JSF Primefaces 3.2。 我有一个模块,用户将创建一些动态字段与他自己的选择,如textfield,textarea,selectbox,复选框,单选按钮,然后一个表单将根据这些选定的字段生成。 我已经成功地创建了第一部分,其中用户正在创建表单,并根据自己的选择生成表单。但是现在我面临的问题是如何将这个表单保存到数据库中。 在这里,我附上了我的模块的一些代码,以便您能够轻松理解并快速找到解决方案

这里是JSF表单,在这里我使用动态方式生成了所有字段


#{current.index+1}。 #{mrow.optionName} #{checkrow.optionName} #{m.menuTitle} #{selectrow.optionName} #{orow.optionName} A

桑杰

A

B

C

D

此模板正在构建中。我们将很快推出此模板

下面是我的Java操作类,它将用于用户请求

    @Named("objectiveTemplateAction")
@Scope(ScopeType.VIEW)
public class EMRObjectiveTemplateAction implements Serializable {

    private static final Logger log = LoggerFactory.getLogger(EMRObjectiveTemplateAction.class);
    @Inject
    private EMRObjectiveTemplateService emrObjectiveTemplateService;
    @Inject
    private UserSession userSession;

    private EMRObjectiveTemplate objectiveTemplate = new EMRObjectiveTemplate();
    private EMRObjectiveTemplateQuestion question = new EMRObjectiveTemplateQuestion();

    private List<EMRObjectiveTemplateQuestion> questionList = null;
    private List<EMRObjectiveTemplate> objectiveTemplateList = new ArrayList<EMRObjectiveTemplate>();
    private List<EMRObjectiveQuestionType> questionTypeList = new ArrayList<EMRObjectiveQuestionType>();
    private List<EMRObjectiveTemplateQuestionOption> questionOptionList = new ArrayList<EMRObjectiveTemplateQuestionOption>();
    private List<EMRObjectiveTemplateQuestionOption> questionOptionColumnList = new ArrayList<EMRObjectiveTemplateQuestionOption>();
    private List<Long> optionMenuCountList = new ArrayList<Long>();
    private List<Long> optionRatingCountList = new ArrayList<Long>();
    private List<EMRObjectiveTemplateQuestionOptionMenu> optionMenuList = new ArrayList<EMRObjectiveTemplateQuestionOptionMenu>();
    private List<EMRObjectiveTemplateQuestionOptionRating> optionRatingList = new ArrayList<EMRObjectiveTemplateQuestionOptionRating>();

    private EMRObjectiveTemplateQuestionOptionValue optionValue = new EMRObjectiveTemplateQuestionOptionValue();

    private Long objectiveTemplateID;
    private Long questionTypeID;

    private String title;
    private String description;

    private String questionContainerName;

    private boolean showQuestionTabContainer = false;
    private String questionOptionName;
    private long optionMenuCount;
    private long optionRatingCount;
    private String menuOptionName;

    @PostConstruct
    public void init() {
    this.objectiveTemplateList = this.emrObjectiveTemplateService.getAllTemplates();
    this.questionTypeList = this.emrObjectiveTemplateService.getAllQuestionType();

    // prefill optionMenuCountList with menuCount
    this.optionMenuCountList.add(1L);
    this.optionMenuCountList.add(2L);
    this.optionMenuCountList.add(3L);
    this.optionMenuCountList.add(4L);
    this.optionMenuCountList.add(5L);
    this.optionMenuCountList.add(6L);
    this.optionMenuCountList.add(7L);
    this.optionMenuCountList.add(8L);
    this.optionMenuCountList.add(9L);

    // prefill optionRatingCountList with ratingCount
    this.optionRatingCountList.add(2L);
    this.optionRatingCountList.add(3L);
    this.optionRatingCountList.add(4L);
    this.optionRatingCountList.add(5L);
    this.optionRatingCountList.add(6L);
    this.optionRatingCountList.add(7L);
    this.optionRatingCountList.add(8L);
    this.optionRatingCountList.add(9L);
    this.optionRatingCountList.add(10L);
    this.optionRatingCountList.add(11L);
    this.optionRatingCountList.add(12L);
    this.optionRatingCountList.add(13L);
    this.optionRatingCountList.add(14L);
    this.optionRatingCountList.add(15L);
    this.optionRatingCountList.add(16L);
    }

    /**
     * Recharge optionMenuList with requested optionMenuCount
     */
    public void rowNumbers() {
    this.optionMenuList = new ArrayList<EMRObjectiveTemplateQuestionOptionMenu>();

    for(int i = 0; i < this.optionMenuCount; i++){
        this.optionMenuList.add(new EMRObjectiveTemplateQuestionOptionMenu());
    }
    }

    /**
     * Recharge optionRatingList with requested optionRatingCount
     */
    public void ratingNumbers() {
    this.optionRatingList = new ArrayList<EMRObjectiveTemplateQuestionOptionRating>();

    for(int i = 0; i < this.optionRatingCount; i++){
        this.optionRatingList.add(new EMRObjectiveTemplateQuestionOptionRating());
    }
    }

    /**
     * Fetch all questions registered under this objectiveTemplateID
     */
    public void loadTemplateQuestionsByID(){
    System.out.println("Current Template ID: " + this.objectiveTemplateID);
    this.questionList = this.emrObjectiveTemplateService.loadTemplateQuestionsByID(this.objectiveTemplateID);
    System.out.println("Questions size: " + this.questionList.size());
    for(EMRObjectiveTemplateQuestion q : this.questionList){
        if(q.getQuestionType().getQuestionTypeVariant().equalsIgnoreCase("radio")){
        this.optionValue = new EMRObjectiveTemplateQuestionOptionValue();
        optionValue.setQuestion(q);
        }
    }
    }

    /**
     * Save filled template into database
     */
    public void fillAndSaveTemplate(){
    for(EMRObjectiveTemplateQuestion q : this.questionList){
        System.out.println("Option Value for Question " + q.getQuestionTitle() + " is: " + this.optionValue.getOptionValue());
//            System.out.println("Question ANswer: " + q.getQuestionAnswer().getQuestionAnswer());
    }
    }

    /**
     * Filter Options according to position from this optionList
     * @param optionsList
     * @return 
     */
    public List<EMRObjectiveTemplateQuestionOption> getColumnOptionsList(List<EMRObjectiveTemplateQuestionOption> optionsList) {
    List<EMRObjectiveTemplateQuestionOption> columnOptionsList = new ArrayList<EMRObjectiveTemplateQuestionOption>();

    for(EMRObjectiveTemplateQuestionOption option : optionsList){
        if(option.getOptionPosition().equalsIgnoreCase("COLUMN")){
        columnOptionsList.add(option);
        }
    }

    return columnOptionsList;
    }

    // Getter - Setter
    public EMRObjectiveTemplate getObjectiveTemplate() {
    return objectiveTemplate;
    }

    public void setObjectiveTemplate(EMRObjectiveTemplate objectiveTemplate) {
    this.objectiveTemplate = objectiveTemplate;
    }

    public List<EMRObjectiveTemplate> getObjectiveTemplateList() {
    return objectiveTemplateList;
    }

    public void setEmrObjectiveTemplateList(List<EMRObjectiveTemplate> objectiveTemplateList) {
    this.objectiveTemplateList = objectiveTemplateList;
    }

    public Long getObjectiveTemplateID() {
    return objectiveTemplateID;
    }

    public void setObjectiveTemplateID(Long objectiveTemplateID) {
    this.objectiveTemplateID = objectiveTemplateID;
    }

    public String getDescription() {
    return description;
    }

    public void setDescription(String description) {
    this.description = description;
    }

    public String getTitle() {
    return title;
    }

    public void setTitle(String title) {
    this.title = title;
    }

    public List<EMRObjectiveQuestionType> getQuestionTypeList() {
    return questionTypeList;
    }

    public void setQuestionTypeList(List<EMRObjectiveQuestionType> questionTypeList) {
    this.questionTypeList = questionTypeList;
    }

    public Long getQuestionTypeID() {
    return questionTypeID;
    }

    public void setQuestionTypeID(Long questionTypeID) {
    this.questionTypeID = questionTypeID;
    }

    public String getQuestionContainerName() {
    return questionContainerName;
    }

    public void setQuestionContainerName(String questionContainerName) {
    this.questionContainerName = questionContainerName;
    }

    public boolean isShowQuestionTabContainer() {
    return showQuestionTabContainer;
    }

    public void setShowQuestionTabContainer(boolean showQuestionTabContainer) {
    this.showQuestionTabContainer = showQuestionTabContainer;
    }

    public List<EMRObjectiveTemplateQuestionOption> getQuestionOptionList() {
    return questionOptionList;
    }

    public void setQuestionOptionList(List<EMRObjectiveTemplateQuestionOption> questionOptionList) {
    this.questionOptionList = questionOptionList;
    }

    public List<EMRObjectiveTemplateQuestionOption> getQuestionOptionColumnList() {
    return questionOptionColumnList;
    }

    public void setQuestionOptionColumnList(List<EMRObjectiveTemplateQuestionOption> questionOptionColumnList) {
    this.questionOptionColumnList = questionOptionColumnList;
    }

    public String getQuestionOptionName() {
    return questionOptionName;
    }

    public void setQuestionOptionName(String questionOptionName) {
    this.questionOptionName = questionOptionName;
    }

    public EMRObjectiveTemplateQuestion getQuestion() {
    return question;
    }

    public void setQuestion(EMRObjectiveTemplateQuestion question) {
    this.question = question;
    }

    public List<EMRObjectiveTemplateQuestionOptionMenu> getOptionMenuList() {
    return optionMenuList;
    }

    public void setOptionMenuList(List<EMRObjectiveTemplateQuestionOptionMenu> optionMenuList) {
    this.optionMenuList = optionMenuList;
    }

    public String getMenuOptionName() {
    return menuOptionName;
    }

    public void setMenuOptionName(String menuOptionName) {
    this.menuOptionName = menuOptionName;
    }

    public long getOptionMenuCount() {
    return optionMenuCount;
    }

    public void setOptionMenuCount(long optionMenuCount) {
    this.optionMenuCount = optionMenuCount;
    }

    public List<Long> getOptionMenuCountList() {
    return optionMenuCountList;
    }

    public void setOptionMenuCountList(List<Long> optionMenuCountList) {
    this.optionMenuCountList = optionMenuCountList;
    }

    public long getOptionRatingCount() {
    return optionRatingCount;
    }

    public void setOptionRatingCount(long optionRatingCount) {
    this.optionRatingCount = optionRatingCount;
    }

    public List<Long> getOptionRatingCountList() {
    return optionRatingCountList;
    }

    public void setOptionRatingCountList(List<Long> optionRatingCountList) {
    this.optionRatingCountList = optionRatingCountList;
    }

    public List<EMRObjectiveTemplateQuestionOptionRating> getOptionRatingList() {
    return optionRatingList;
    }

    public void setOptionRatingList(List<EMRObjectiveTemplateQuestionOptionRating> optionRatingList) {
    this.optionRatingList = optionRatingList;
    }

    public List<EMRObjectiveTemplateQuestion> getQuestionList() {
    return questionList;
    }

    public void setQuestionList(List<EMRObjectiveTemplateQuestion> questionList) {
    this.questionList = questionList;
    }

    public EMRObjectiveTemplateQuestionOptionValue getOptionValue() {
    return optionValue;
    }

    public void setOptionValue(EMRObjectiveTemplateQuestionOptionValue optionValue) {
    this.optionValue = optionValue;
    }
}
@Named(“objectiveTemplateAction”)
@作用域(ScopeType.VIEW)
公共类EMRObjectiveTemplateAction实现可序列化{
私有静态最终记录器log=LoggerFactory.getLogger(EMRObjectiveTemplateAction.class);
@注入
私有EMRObjectiveTemplateService EMRObjectiveTemplateService;
@注入
私有用户会话;
私有EMRObjectiveTemplate objectiveTemplate=新的EMRObjectiveTemplate();
私有EMRObjectiveTemplateQuestion=新EMRObjectiveTemplateQuestion();
私有列表questionList=null;
私有列表objectiveTemplateList=新的ArrayList();
私有列表questionTypeList=new ArrayList();
private List questionOptionList=新建ArrayList();
私人Lis
    @Named("objectiveTemplateAction")
@Scope(ScopeType.VIEW)
public class EMRObjectiveTemplateAction implements Serializable {

    private static final Logger log = LoggerFactory.getLogger(EMRObjectiveTemplateAction.class);
    @Inject
    private EMRObjectiveTemplateService emrObjectiveTemplateService;
    @Inject
    private UserSession userSession;

    private EMRObjectiveTemplate objectiveTemplate = new EMRObjectiveTemplate();
    private EMRObjectiveTemplateQuestion question = new EMRObjectiveTemplateQuestion();

    private List<EMRObjectiveTemplateQuestion> questionList = null;
    private List<EMRObjectiveTemplate> objectiveTemplateList = new ArrayList<EMRObjectiveTemplate>();
    private List<EMRObjectiveQuestionType> questionTypeList = new ArrayList<EMRObjectiveQuestionType>();
    private List<EMRObjectiveTemplateQuestionOption> questionOptionList = new ArrayList<EMRObjectiveTemplateQuestionOption>();
    private List<EMRObjectiveTemplateQuestionOption> questionOptionColumnList = new ArrayList<EMRObjectiveTemplateQuestionOption>();
    private List<Long> optionMenuCountList = new ArrayList<Long>();
    private List<Long> optionRatingCountList = new ArrayList<Long>();
    private List<EMRObjectiveTemplateQuestionOptionMenu> optionMenuList = new ArrayList<EMRObjectiveTemplateQuestionOptionMenu>();
    private List<EMRObjectiveTemplateQuestionOptionRating> optionRatingList = new ArrayList<EMRObjectiveTemplateQuestionOptionRating>();

    private EMRObjectiveTemplateQuestionOptionValue optionValue = new EMRObjectiveTemplateQuestionOptionValue();

    private Long objectiveTemplateID;
    private Long questionTypeID;

    private String title;
    private String description;

    private String questionContainerName;

    private boolean showQuestionTabContainer = false;
    private String questionOptionName;
    private long optionMenuCount;
    private long optionRatingCount;
    private String menuOptionName;

    @PostConstruct
    public void init() {
    this.objectiveTemplateList = this.emrObjectiveTemplateService.getAllTemplates();
    this.questionTypeList = this.emrObjectiveTemplateService.getAllQuestionType();

    // prefill optionMenuCountList with menuCount
    this.optionMenuCountList.add(1L);
    this.optionMenuCountList.add(2L);
    this.optionMenuCountList.add(3L);
    this.optionMenuCountList.add(4L);
    this.optionMenuCountList.add(5L);
    this.optionMenuCountList.add(6L);
    this.optionMenuCountList.add(7L);
    this.optionMenuCountList.add(8L);
    this.optionMenuCountList.add(9L);

    // prefill optionRatingCountList with ratingCount
    this.optionRatingCountList.add(2L);
    this.optionRatingCountList.add(3L);
    this.optionRatingCountList.add(4L);
    this.optionRatingCountList.add(5L);
    this.optionRatingCountList.add(6L);
    this.optionRatingCountList.add(7L);
    this.optionRatingCountList.add(8L);
    this.optionRatingCountList.add(9L);
    this.optionRatingCountList.add(10L);
    this.optionRatingCountList.add(11L);
    this.optionRatingCountList.add(12L);
    this.optionRatingCountList.add(13L);
    this.optionRatingCountList.add(14L);
    this.optionRatingCountList.add(15L);
    this.optionRatingCountList.add(16L);
    }

    /**
     * Recharge optionMenuList with requested optionMenuCount
     */
    public void rowNumbers() {
    this.optionMenuList = new ArrayList<EMRObjectiveTemplateQuestionOptionMenu>();

    for(int i = 0; i < this.optionMenuCount; i++){
        this.optionMenuList.add(new EMRObjectiveTemplateQuestionOptionMenu());
    }
    }

    /**
     * Recharge optionRatingList with requested optionRatingCount
     */
    public void ratingNumbers() {
    this.optionRatingList = new ArrayList<EMRObjectiveTemplateQuestionOptionRating>();

    for(int i = 0; i < this.optionRatingCount; i++){
        this.optionRatingList.add(new EMRObjectiveTemplateQuestionOptionRating());
    }
    }

    /**
     * Fetch all questions registered under this objectiveTemplateID
     */
    public void loadTemplateQuestionsByID(){
    System.out.println("Current Template ID: " + this.objectiveTemplateID);
    this.questionList = this.emrObjectiveTemplateService.loadTemplateQuestionsByID(this.objectiveTemplateID);
    System.out.println("Questions size: " + this.questionList.size());
    for(EMRObjectiveTemplateQuestion q : this.questionList){
        if(q.getQuestionType().getQuestionTypeVariant().equalsIgnoreCase("radio")){
        this.optionValue = new EMRObjectiveTemplateQuestionOptionValue();
        optionValue.setQuestion(q);
        }
    }
    }

    /**
     * Save filled template into database
     */
    public void fillAndSaveTemplate(){
    for(EMRObjectiveTemplateQuestion q : this.questionList){
        System.out.println("Option Value for Question " + q.getQuestionTitle() + " is: " + this.optionValue.getOptionValue());
//            System.out.println("Question ANswer: " + q.getQuestionAnswer().getQuestionAnswer());
    }
    }

    /**
     * Filter Options according to position from this optionList
     * @param optionsList
     * @return 
     */
    public List<EMRObjectiveTemplateQuestionOption> getColumnOptionsList(List<EMRObjectiveTemplateQuestionOption> optionsList) {
    List<EMRObjectiveTemplateQuestionOption> columnOptionsList = new ArrayList<EMRObjectiveTemplateQuestionOption>();

    for(EMRObjectiveTemplateQuestionOption option : optionsList){
        if(option.getOptionPosition().equalsIgnoreCase("COLUMN")){
        columnOptionsList.add(option);
        }
    }

    return columnOptionsList;
    }

    // Getter - Setter
    public EMRObjectiveTemplate getObjectiveTemplate() {
    return objectiveTemplate;
    }

    public void setObjectiveTemplate(EMRObjectiveTemplate objectiveTemplate) {
    this.objectiveTemplate = objectiveTemplate;
    }

    public List<EMRObjectiveTemplate> getObjectiveTemplateList() {
    return objectiveTemplateList;
    }

    public void setEmrObjectiveTemplateList(List<EMRObjectiveTemplate> objectiveTemplateList) {
    this.objectiveTemplateList = objectiveTemplateList;
    }

    public Long getObjectiveTemplateID() {
    return objectiveTemplateID;
    }

    public void setObjectiveTemplateID(Long objectiveTemplateID) {
    this.objectiveTemplateID = objectiveTemplateID;
    }

    public String getDescription() {
    return description;
    }

    public void setDescription(String description) {
    this.description = description;
    }

    public String getTitle() {
    return title;
    }

    public void setTitle(String title) {
    this.title = title;
    }

    public List<EMRObjectiveQuestionType> getQuestionTypeList() {
    return questionTypeList;
    }

    public void setQuestionTypeList(List<EMRObjectiveQuestionType> questionTypeList) {
    this.questionTypeList = questionTypeList;
    }

    public Long getQuestionTypeID() {
    return questionTypeID;
    }

    public void setQuestionTypeID(Long questionTypeID) {
    this.questionTypeID = questionTypeID;
    }

    public String getQuestionContainerName() {
    return questionContainerName;
    }

    public void setQuestionContainerName(String questionContainerName) {
    this.questionContainerName = questionContainerName;
    }

    public boolean isShowQuestionTabContainer() {
    return showQuestionTabContainer;
    }

    public void setShowQuestionTabContainer(boolean showQuestionTabContainer) {
    this.showQuestionTabContainer = showQuestionTabContainer;
    }

    public List<EMRObjectiveTemplateQuestionOption> getQuestionOptionList() {
    return questionOptionList;
    }

    public void setQuestionOptionList(List<EMRObjectiveTemplateQuestionOption> questionOptionList) {
    this.questionOptionList = questionOptionList;
    }

    public List<EMRObjectiveTemplateQuestionOption> getQuestionOptionColumnList() {
    return questionOptionColumnList;
    }

    public void setQuestionOptionColumnList(List<EMRObjectiveTemplateQuestionOption> questionOptionColumnList) {
    this.questionOptionColumnList = questionOptionColumnList;
    }

    public String getQuestionOptionName() {
    return questionOptionName;
    }

    public void setQuestionOptionName(String questionOptionName) {
    this.questionOptionName = questionOptionName;
    }

    public EMRObjectiveTemplateQuestion getQuestion() {
    return question;
    }

    public void setQuestion(EMRObjectiveTemplateQuestion question) {
    this.question = question;
    }

    public List<EMRObjectiveTemplateQuestionOptionMenu> getOptionMenuList() {
    return optionMenuList;
    }

    public void setOptionMenuList(List<EMRObjectiveTemplateQuestionOptionMenu> optionMenuList) {
    this.optionMenuList = optionMenuList;
    }

    public String getMenuOptionName() {
    return menuOptionName;
    }

    public void setMenuOptionName(String menuOptionName) {
    this.menuOptionName = menuOptionName;
    }

    public long getOptionMenuCount() {
    return optionMenuCount;
    }

    public void setOptionMenuCount(long optionMenuCount) {
    this.optionMenuCount = optionMenuCount;
    }

    public List<Long> getOptionMenuCountList() {
    return optionMenuCountList;
    }

    public void setOptionMenuCountList(List<Long> optionMenuCountList) {
    this.optionMenuCountList = optionMenuCountList;
    }

    public long getOptionRatingCount() {
    return optionRatingCount;
    }

    public void setOptionRatingCount(long optionRatingCount) {
    this.optionRatingCount = optionRatingCount;
    }

    public List<Long> getOptionRatingCountList() {
    return optionRatingCountList;
    }

    public void setOptionRatingCountList(List<Long> optionRatingCountList) {
    this.optionRatingCountList = optionRatingCountList;
    }

    public List<EMRObjectiveTemplateQuestionOptionRating> getOptionRatingList() {
    return optionRatingList;
    }

    public void setOptionRatingList(List<EMRObjectiveTemplateQuestionOptionRating> optionRatingList) {
    this.optionRatingList = optionRatingList;
    }

    public List<EMRObjectiveTemplateQuestion> getQuestionList() {
    return questionList;
    }

    public void setQuestionList(List<EMRObjectiveTemplateQuestion> questionList) {
    this.questionList = questionList;
    }

    public EMRObjectiveTemplateQuestionOptionValue getOptionValue() {
    return optionValue;
    }

    public void setOptionValue(EMRObjectiveTemplateQuestionOptionValue optionValue) {
    this.optionValue = optionValue;
    }
}