小编Vla*_*mir的帖子

在JSP中,如何使用JSTL检查请求中是否存在某个会话属性?

这是servlet中的代码:

HttpSession session = request.getSession(true);
session.setAttribute("user", user);
Run Code Online (Sandbox Code Playgroud)

我正在向JSP转发请求,我想检查是否附加了会话范围的用户参数.

<c:if test="${??? - check if user is attached to request}">
/   /message
</c:if>
Run Code Online (Sandbox Code Playgroud)

java model-view-controller jsp servlets jstl

19
推荐指数
2
解决办法
4万
查看次数

ASP .NET MVC表单字段验证(无模型)

我正在寻找一种方法来验证ASP View页面上的两个字段.我知道验证表单字段的通常方法是@model ViewModel在页面上包含一些对象,其中此模型对象的属性将使用验证所需的适当注释进行注释.例如,注释可以是这样的:

[Required(ErrorMessage = "Please add the message")]
[Display(Name = "Message")]
Run Code Online (Sandbox Code Playgroud)

但是,在我的情况下,页面上没有包含模型,并且从表单调用的控制器操作接收平面字符串作为方法参数.这是表单代码:

@using (Html.BeginForm("InsertRssFeed", "Rss", FormMethod.Post, new { @id = "insertForm", @name = "insertForm" }))
{
<!-- inside this div goes entire form for adding rssFeed, or for editing it -->
    ...
            <div class="form-group">
                <label class="col-sm-2 control-label"> Name:</label>
                <div class="col-sm-10">
                    <div class="controls">
                        @Html.Editor("Name", new { htmlAttributes = new { @class = "form-control", @id = "add_rssFeed_name" } })
                    </div>
                </div>
            </div>

                <div class="form-group">
                    <label class="col-sm-2 control-label"> URL:</label>
                    <div …
Run Code Online (Sandbox Code Playgroud)

c# asp.net validation asp.net-mvc asp.net-mvc-4

8
推荐指数
1
解决办法
1万
查看次数

Serilog 日志记录 web-api 方法,在中间件中添加上下文属性

我一直在努力使用 serilog 记录响应正文有效负载数据,从中间件记录。我工作的WEB API核心应用,与招摇添加到终点,我的目标是为每一个终点呼叫记录到一个以.json与文件serilog(请求和响应数据)。

对于GET请求,应记录响应正文(作为属性添加到 serilog 上下文),对于 POST 请求,应记录请求正文和响应正文。我创建了中间件并设法从请求和响应流中正确检索数据,并将其作为字符串获取,但只有“RequestBody”被正确记录。

调试时,我可以看到读取请求/响应正文工作正常。

以下是 Program->Main 方法的代码摘录:

Log.Logger = new LoggerConfiguration()
    .ReadFrom.Configuration(configuration)
    .Enrich.FromLogContext()
    .CreateLogger();
Run Code Online (Sandbox Code Playgroud)

和中间件中的代码:

public async Task Invoke(HttpContext context)
{
    // Read and log request body data
    string requestBodyPayload = await ReadRequestBody(context.Request);

    LogContext.PushProperty("RequestBody", requestBodyPayload);

    // Read and log response body data
    var originalBodyStream = context.Response.Body;
    using (var responseBody = new MemoryStream())
    {
        context.Response.Body = responseBody;
        await _next(context);
        string responseBodyPayload = await …
Run Code Online (Sandbox Code Playgroud)

serilog asp.net-core asp.net-core-middleware asp.net-core-webapi

8
推荐指数
2
解决办法
6075
查看次数

每个不为空的 Parameter 对象属性,作为条件添加到表达式谓词中

我正在寻找一种基于方法参数动态构建表达式的方法。

这是我的服务方法的代码片段,我想在其中构建谓词表达式。

    public async Task<Account> GetCustomerAccountsAsync(Parameters params)
    {
        var items = await _unitOfWork.Accounts.GetWhereAsync(a => a.CustomerId == params.CustomerId && ... );
        ...
    }
Run Code Online (Sandbox Code Playgroud)

GetWhereAsync是通用存储库中的一种方法,如下所示:

    public async Task<IEnumerable<TEntity>> GetWhereAsync(Expression<Func<TEntity, bool>> predicate)
    {
        return await Context.Set<TEntity>().Where(predicate).ToListAsync();
    }
Run Code Online (Sandbox Code Playgroud)

参数类:

    public class Parameters
    {
        public string CustomerId { get; set; }
        public string AccountId { get; set; }
        public string ProductId { get; set; }
        public string CurrencyId { get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

我想要实现的是,每个非null 的Parameter对象属性都作为条件添加到表达式谓词中。

例如,如果CustomerIdAccountId …

c# linq lambda entity-framework func

6
推荐指数
1
解决办法
343
查看次数

构建JPA Criteria API查询 - 按集合中的元素数排序

我在使用JPA Criteria API构建查询时遇到问题.

实体和重要财产:

@Entity
public class Post {
    @Id int id;
    @OneToMany (mappedBy = "post") Set<Comment> comments;
    //...
}

@Entity
public class Comment {
    @Id int id;
    @ManyToOne Post post;
    //...
}
Run Code Online (Sandbox Code Playgroud)

我需要一个查询,它将返回按照注释数量(OneToManyin Post)排序的db中的所有帖子.起初我认为这可以用以下方式实现JPQL:

SELECT p 
FROM Post p 
ORDER BY SIZE(p.comments) DESC
Run Code Online (Sandbox Code Playgroud)

但功能SIZE(...)不能用它来订购JPQL.

所以,我找到了JPA Criteria API,并尝试了以下内容:

CriteriaBuilder cb = em.getCriteriaBuilder();
CriteriaQuery<Post> cq = cb.createQuery(Post.class);
Root<Post> p = cq.from(Post.class);
cq.select(p);
cq.orderBy(cb.desc(p.get("comments")));
List<Post> resultList = em.createQuery(cq).getResultList();
Run Code Online (Sandbox Code Playgroud)

有了这个查询,我没有得到正确的结果.我知道我错过size了设置'评论',但不知道如何添加该部分.我不是很熟悉 …

java orm hibernate jpa jpql

5
推荐指数
1
解决办法
3245
查看次数

JPQL查询,用于搜索单词/字符串是否包含在实体的字段之一中

基本上,它类似于查找句子中是否存在某些单词。有实体帖子:

public class Post implements Serializable {
    @Id
    @GeneratedValue(strategy = IDENTITY)
    @Column(name = "post_id", unique = true, nullable = false)
    private Integer id; 

    @Column(name = "post_title", length=300, unique = false, nullable = false)
    private String title;

    @Column(name = "post_date", unique = false, nullable = false)
    private Date date;
        ...}
Run Code Online (Sandbox Code Playgroud)

我正在尝试实现JPQL查询,该查询将搜索Post实体实例,这些实体实例byTitle在其title字段中具有某些单词/字符串(作为参数传递),以及两个以上Date类型的参数,分别代表日期范围- startDateendDate

我心里有这样的事情: SELECT p FROM Post p WHERE :byTitle IN (set of strings created from parsing p.title …

java jpa jpql java-ee

4
推荐指数
1
解决办法
7157
查看次数

JSP中的JSTL循环用于嵌套的未编译列表

MVC - servlet将请求转发给JSP.在servlet中我创建了类别的列表(java.util.List),将此列表附加到servlet上下文,并将请求转发到JSP页面:

public class Category{
       private Integer id;
       private String name;
       private Category parentCategory;
       ...
       //getters and setters
    }
Run Code Online (Sandbox Code Playgroud)

此类表示类别/子类别(如果parentCategory字段为null,则它是顶级类别).具有相同父级的类别是其子类别,并且它们将映射到JSP中的嵌套无序列表.示例:结果应与下一个HTML代码类似:

<ul class="droprightMenu">  
            <li><a href="#">Category 1</a>
                <ul class="droprightMenu">
                    <li><a href="#">Category 1.1</a></li>
                    <li><a href="#">Category 1.2</a></li>
                    <li><a href="#">Category 1.3</a></li>
                          <ul class="droprightMenu">
                                <li><a href="#">Category 1.3.1</a></li>
                                <li><a href="#">Category 1.3.2</a></li>
                                <li><a href="#">Category 1.3.3</a></li>
                                <li><a href="#">Category 1.3.4</a></li>
                          </ul> 
                    <li><a href="#">Category 1.4</a></li>
                </ul>
            </li>
            <li><a href="#">Category 2</a></li>
            <li><a href="#">Category 3</a></li>
                <ul class="droprightMenu">
                    <li><a href="#">Category 3.1</a></li>
                    <li><a href="#">Category 3.2</a></li>
                          <ul class="droprightMenu">
                                <li><a href="#">Category 3.2.1</a></li>
                                <li><a href="#">Category 3.2.2</a></li>
                          </ul> …
Run Code Online (Sandbox Code Playgroud)

java jsp servlets jstl

3
推荐指数
1
解决办法
7115
查看次数

Javascript - 检查多个字段是否为空不起作用

HTML 表单外观:

<form action="search" id="searchForm" onsubmit="return validateSearch()">
    <input type="text" name="byTitle" pattern="[a-zA-Z0-9]+" placeholder="Enter a word from title">
    <input type="text" name="byAuthor" pattern="[a-zA-Z]+\s[a-zA-Z]+" placeholder="First-name Last-name"> <!--  pattern="\w+ \w+" -->
    <input id="startDate" name="startDate" type="date">
    <input id="endDate" name="endDate" type="date">
    <input type="submit" name="submit" value="Submit">
</form>
Run Code Online (Sandbox Code Playgroud)

Javascript 验证功能:

function validateSearch() {

    var byTitle   = document.getElementById('searchForm').byTitle.value;
    // alert(byTitle);
    var byAuthor  = document.getElementById('searchForm').byAuthor.value;
    // alert(byAuthor);
    var startDate = document.getElementById('searchForm').startDate.value;
    //alert(startDate);
    var endDate   = document.getElementById('searchForm').endDate.value;
    //alert(endDate);       

    if(byTitle == byAuthor == startDate == endDate == ""){
        alert("Enter at least one search …
Run Code Online (Sandbox Code Playgroud)

html javascript

3
推荐指数
1
解决办法
2万
查看次数

如果用户登录(如果使用JSTL <if>语句),如何检查JSP,并显示用户名?

我知道在SO上有许多类似的问题 - 大多数都是指用servlet过滤器实现这个概念.

我使用基于表单的声明式安全方法.并且,当一些用户在登录表单上输入他(或她)的凭证(用户名和密码)时,他被重定向到某个/安全的jsp页面.该页面内容的一部分是:

Hello <%=request.getUserPrincipal().getName().toString()%>
    You are able to view this page because you are authorized user.
Run Code Online (Sandbox Code Playgroud)

现在,如果用户已登录,我想显示他/她的用户名,无论是否有安全的jsp页面.像这样的东西:

<c:if test="${statement that checks if some user is logged in}">
   User: ${username of the logged user here}
</c:if>
Run Code Online (Sandbox Code Playgroud)

编辑 我还想<%=request.getUserPrincipal().getName().toString()%>用适当的JSTL命令替换JSP scriptlet部分.

java jsp servlets jstl

3
推荐指数
1
解决办法
9302
查看次数

无法在MySQL Workbench EER Diagram中移动(单击并拖动)实体

我使用MySQL Workbench - EER模型建模数据库.现在,我想移动某些实体,以便我可以将它们包装在单独的图层中,以获得更好的视觉效果.我的问题是我无法使用"点击并拖动"技术在EER图上移动实体.此外,我想选择一些区域,围绕某些实体并将它们放在图层中.选择"选择对象"(鼠标箭头)工具.

可能图表编辑器处于某种锁定模式吗?也许我按了一些快捷键或启用/禁用了一些选项,但我找不到在EER图上启用移动实体的位置.

感谢任何帮助.

编辑:我在Ubuntu Linux机器上使用MySQL Workbench制作了这个模型.在那里,我能够在图表上拖动实体.但是,现在我已经在我的其他计算机上打开了这个模型,我有Windows 7和最新的MySQL Workbench(6.1).这可能是个问题吗?因为Linux上的MySQL Workbench非常不稳定并且不时崩溃.

mysql database model mysql-workbench eer-model

3
推荐指数
1
解决办法
3908
查看次数