2016-10-03 3 views
0

Я пытаюсь передать строковое значение для использования в моем сценарии js, чтобы скрыть, какой URL я должен отобразить. Я пробовал несколько вещей, но я чувствую, что есть небольшое отключение от того, как я передаю значение js из java.Spring MVC с Усы, отправляющий строковую переменную.

Так что это моя RequestMapping, которую я использую для отправки значения js из java.

@RequestMapping(value = HOME_URL_MAPPING) 
public String inventory(final Model model) { 

    String userRole = "HQ"; 

    model.addAttribute("userrole", userRole); 
    return controllerHelper.createUrl(INVENTORY, WebGlobals.HOME); 
} 

Это HTML-файл, который я использую для сборки вида;

{{>partials/header}} 

<script type="text/javascript"> 
//var gus = $("userrole").val(); // undefined 
//var gus = '${userrole}'; //Returns ${userrole} 
//var gus = $('userrole').val(); //This get undefined? 
//var gus = $('userrole'); //This returns [object Object] 
//var gus = ${'userrole'}; //Dont work 
//var gus = ${userrole}; // Dont work 
//var gus = ${userrole} Dont Work 
//var gusRole = ${userrole.name} Dont work 
//var gus = {{userrole}} //undeefined 
//var gus = {{userrole}}; //undefined 
var gus1 = "HQ" 

var haveClicked = false; 
var myRole = "ADMIN" 


function checkUserRights() 
{ 
    alert("The Ships Going down all on account of the weather"); 
    alert(gus); //Prints off the value of Gus which will be the role of the user 

if(haveClicked == false) 
    { 
     switch(myRole) // I want to put gus here to test 
     { 
      case "ADMIN": 
       alert("Opening ADMIN Rights"); 
       $('<a href="/inventory/view"> H Group</a>').appendTo($('body')); 
       $('<a href="/inventory/approve"> A Group</a>').appendTo($('body')); 
       haveClicked = true; 
       break; 
      case "HQ": 
       alert("Opening H Rights"); 
       $('<a href="/inventory/view"> H Group</a>').appendTo($('body')); 
       haveClicked = true; 
       break; 
      default: 
       alert("Opening A Rights"); 
       $('<a href="/inventory/approve"> A Group</a>').appendTo($('body')); 
       haveClicked = true; 
     } 
}//end of if checker 

}

{{>partials/footer}} 

А это мой помощник управления.

@Component 
public class ControllerHelper { 
private static final Logger logger =  LoggerFactory.getLogger(ControllerHelper.class); 

private final MessageSource messages; 
private final String version; 

@Autowired 
public ControllerHelper(
     final MessageSource messages, 
     @Value("${version}") final String version) 
{ 
    this.messages = Validate.notNull(messages); 
    this.version = Validate.notBlank(version); 
} 

public String getVersion() { 
    return StringUtils.stripToEmpty(version); 
} 

public void addCommonAttributes(final Model model) { 
    if (model == null) return; 
    model.addAttribute("version", getVersion()); 
} 

public String getMessage(final String code, final String defaultMessage) { 
    return messages.getMessage(code, null, defaultMessage, getLocale()); 
} 

public String getMessage(final String code, final Object[] args, final String defaultMessage) { 
    return messages.getMessage(code, args, defaultMessage, getLocale()); 
} 

public static Locale getLocale() { 
    return Globals.DEFAULT_LOCALE; 
} 

public static String getCurrentUserName() { 
    final Authentication auth = SecurityContextHolder.getContext().getAuthentication(); 
    if (auth == null) return "anonymous"; 
    return auth.getName(); 
} 

public static ResponseEntity<Map<String, Object>> displayErrorResponse(final Exception exception) { 
    String errorMessage = exception.getMessage(); 

    if (exception.getClass() == InvalidUserInputException.class) { 
     logger.info("USER ERROR: " + errorMessage); 
    } 
    else { 
     logger.error("ERROR: " + errorMessage); 
    } 

    final Map<String, Object> error = new HashMap<>(); 
    error.put("error", errorMessage);  

    ResponseStatus exceptionResponseStatus = exception.getClass().getAnnotation(ResponseStatus.class); 

    // Set as bad request if no response status set for exception 
    return ResponseEntity.status(exceptionResponseStatus == null ? HttpStatus.INTERNAL_SERVER_ERROR : exceptionResponseStatus.value()).body(error); 
} 

public String createUrl(String... pathElements) { 
    int numberOfPathElements = pathElements.length; 
    if (numberOfPathElements == 0) return ""; 

    String result = pathElements[0]; 
    for (int iter = 1; iter < numberOfPathElements; iter++) { 
     result += "/" + pathElements[iter]; 
    } 

    return result; 
} 

}

+1

насчет просто: 'вар Гас = '{{UserRole}}' '; ? – marioosh

+0

@marioosh, который сработал вам большое спасибо. Радует, что это ответ, и я соглашусь с ним. Еще раз спасибо. – MNM

ответ

Смежные вопросы