【问题标题】:Multiple markers at this line - String cannot be resolved to a variable - Syntax error on token "food", delete此行有多个标记 - 字符串无法解析为变量 - 标记“食物”上的语法错误,删除
【发布时间】:2014-09-12 21:26:29
【问题描述】:

我有这个错误: 1- 此行有多个标记 - 字符串无法解析为变量 - 标记“食物”的语法错误,删除

2- 此行有多个标记 - 标记“详细信息”的语法错误,删除 这个令牌 - 字符串无法解析为变量

我在 NewPortlet.java 中用 ** 标记了这些行

。以下是我的两个相关文件

NewPortlet.java

package com.test;

import java.io.IOException;
import java.util.Date;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;

import com.liferay.counter.service.CounterLocalServiceUtil;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.servlet.SessionMessages;
import com.liferay.portal.kernel.util.Constants;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.model.User;
import com.liferay.portal.service.UserLocalServiceUtil;
import com.liferay.util.bridges.mvc.MVCPortlet;


public class NewPortlet extends MVCPortlet {

  public static String VIEW_JSP ="/html/new/view.jsp";

  @Override
  public void doView(RenderRequest renderRequest, RenderResponse renderResponse ) throws IOException, PortletException {
    //renderRequest
    super.doView(renderRequest, renderResponse);
  }

  public void processAction(ActionRequest actionRequest, ActionResponse actionResponse)  throws IOException, PortletException {
    String cmd = ParamUtil.getString(actionRequest, Constants.CMD);
        try {
          if (cmd.equals(Constants.ADD)){

            String food = ParamUtil.getString(actionRequest, "food");
            String detail = ParamUtil.getString(actionRequest, "detail");

            long userId = CounterLocalServiceUtil.increment();
            User user_= UserLocalServiceUtil.createUser(userId);

         ** user_.setFood(food);
         ** user_.setDetail(detail);
            user_.setCreateDate(new Date());

            UserLocalServiceUtil.updateUser(user_ , false);
            SessionMessages.add(actionRequest,"food-added-succesfuly");
          }
        }catch (SystemException e) {
            //TODO Auto-generated Catch block
            e.printStackTrace();
        }
        super.processAction(actionRequest, actionResponse);
    }
  }
}

和我的服务构建者

<entity name="Food" local-service="true" remote-service="true">

        <!-- PK fields -->

        <column name="foodId" type="long" primary="true" />

        <!-- Group instance -->

        <column name="food" type="string" />
        <column name="detail" type="string" />
        <column name="createDate" type="new Date()" />
    ...

【问题讨论】:

  • 那么“这一行”是哪一行?
  • 我在 NewPortlet.ava 中用 ** 标记了它们

标签: eclipse liferay


【解决方案1】:

您正在尝试添加 Food 实体,但您使用了用户实体。 用户实体没有任何属性/列作为食物或细节。

要添加 Food 实体,您必须使用如下代码。

long userId = CounterLocalServiceUtil.increment(Food.class); 
Food foodEntry_=FoodLocalServiceUtil.createFood(userId); 
foodEntry_.setFood(food); 
foodEntry_.setDetail(detail); 
foodEntry_ .setCreateDate(new Date()); 
FoodLocalServiceUtil.updateUser(foodEntry_ , false); 
SessionMessages.add(actionRequest,"food-added-succesfuly"); 

【讨论】:

    猜你喜欢
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-14
    相关资源
    最近更新 更多