小编Thr*_*ark的帖子

h:绑定到String属性的inputText是提交空字符串而不是null

我在Tomcat上有一个JSF 2.0应用程序,有很多<h:inputText>字段可以在我的数据库中输入数据.某些字段不是必需的.

<h:inputText value="#{registerBean.user.phoneNumber}" id="phoneNumber">
    <f:validateLength maximum="20" />
</h:inputText>
Run Code Online (Sandbox Code Playgroud)

当用户将此字段留空时,JSF设置空字符串""而不是null.

如何在不检查每个String的情况下修复此行为

if (string.equals("")) { string = null; }
Run Code Online (Sandbox Code Playgroud)

string null jsf tomcat el

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

使用nginx + Unicorn + rails的IP地址错误

我检查控制器中的ip-address

request.env['REMOTE_ADDR']
Run Code Online (Sandbox Code Playgroud)

这在我的测试环境中工作正常.但是在使用nginx + unicorn的生产服务器上,我总能得到127.0.0.1.

这是我的网站的nginx配置:

  upstream unicorn {
  server unix:/tmp/unicorn.urlshorter.sock fail_timeout=0;
}

server {
  listen 80 default deferred;
  # server_name example.com;
  root /home/deployer/apps/urlshorter/current/public;

  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }

  try_files $uri/index.html $uri @unicorn;
  location @unicorn {
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://unicorn;
  }

  error_page 500 502 503 504 /500.html;
  client_max_body_size 4G;
  keepalive_timeout 10;
}
Run Code Online (Sandbox Code Playgroud)

nginx unicorn ruby-on-rails-3

11
推荐指数
3
解决办法
8476
查看次数

触发后,查询没有结果数据的目标

我的触发器有问题.在插入新行时,它将检查文章是否未售出.我可以在软件中做到这一点,但我认为这对DB来说更好.

-- Create function
CREATE OR REPLACE FUNCTION checkSold() RETURNS TRIGGER AS $checkSold$
    BEGIN
        SELECT offer_id FROM offer WHERE offer_id = NEW.offer_id AND date_sale IS NULL;

    IF NOT FOUND THEN
        RAISE EXCEPTION 'The Offer is Sold!';
    END IF;
    RETURN NEW;
END;
$checkSold$ LANGUAGE plpgsql;


-- Create trigger
Drop TRIGGER checkSold ON tag_map;
CREATE TRIGGER checkSold BEFORE INSERT ON tag_map FOR EACH ROW EXECUTE PROCEDURE checkSold();

INSERT INTO tag_map (tag_id,offer_id) VALUES (824,80);
Run Code Online (Sandbox Code Playgroud)

这是插入后的错误.

[WARNING  ] INSERT INTO tag_map (tag_id,offer_id) VALUES (824,80) …
Run Code Online (Sandbox Code Playgroud)

database postgresql triggers plpgsql

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

RSpec找不到Factorygirl的Factorys

我将在我的Rails3项目中使用RSpec和Factory girl.我已安装工厂女孩,但它没有找到factorys我有这个错误

Failure/Error: Factory.build(:user).should_be valid
No such factory: user
Run Code Online (Sandbox Code Playgroud)

spec/factories/user_factory.rb:

Factory.define :user do |u|
  u.username 'otto'
end
Run Code Online (Sandbox Code Playgroud)

投机/ spec_helper.rb

ENV["RAILS_ENV"] ||= 'test'
require File.expand_path("../../config/environment", __FILE__)
require 'rspec/rails'
require 'factory_girl'

Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

RSpec.configure do |config|
  config.mock_with :rspec
  config.fixture_path = "#{::Rails.root}/spec/fixtures"
  config.use_transactional_fixtures = true
end
Run Code Online (Sandbox Code Playgroud)

的Gemfile:

group :development, :test do
   gem 'webrat'
   gem "cucumber-rails"
   gem "rspec-rails"
   gem "rspec"
   gem "autotest"
   gem 'factory_girl'
end
Run Code Online (Sandbox Code Playgroud)

谢谢

bdd rspec ruby-on-rails factory-bot

7
推荐指数
2
解决办法
8069
查看次数

JSF仅适用于.xhtml结尾

我从JSF网站的编程开始.目前所有文件都有.xhtml结尾.当我去http:// localhost:8080/myProject/start.jsf一切都很好.但是当我将文件从start.xhtml重命名为start.jsf时,我变成了NoClassDefFound错误.

我的错是什么?

  <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
  </servlet-mapping>
  <context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Development</param-value>
  </context-param>
Run Code Online (Sandbox Code Playgroud)

jsf facelets java-ee

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

.properties文件中的Bean验证和错误消息

我正在与Glassfish合作开发JSF Projekt.我的验证工作正常,但我不会成为自定义错误消息.

//Class = User, package = devteam
@NotEmpty @Pattern(".+@.+\\.[a-z]+")
private String emailAddress;
Run Code Online (Sandbox Code Playgroud)

我的ValidationMessages.properties位于WEB-INF文件夹中,其中包含以下内容:

devteam.User.emailAddress=Invalid e-mail address
Run Code Online (Sandbox Code Playgroud)

谢谢.

jsf glassfish bean-validation

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

JSF 2.0上用户身份验证的最佳实践?

我搜索了如何在我的JSF Web项目中进行用户身份验证的最佳方法.我在库存过流中找到了BalusC的这个非常好的例子(顺便说一下,谢谢你BalusC).但我不明白这个系统.

我写了一个注册页面.注册后,用户进入我的数据库.但是谁可以使用j_security_check从我的数据库中检查用户?

在我的webproject中,我没有用户和非用户的站点.当用户进入时,他会看到更多选项,例如他可以发布文本.我可以检查一下吗?我可以在登录时使用userdata保存用户类并检查:

if(user != null){
 <h:inputText value="User Only Text" id="text"  />
}
Run Code Online (Sandbox Code Playgroud)

但我认为这种方式并不是很优雅.另外我的问题是,让用户登录并在网页上显示有效用户的更多选项的最佳方式是什么,而不是非用户.

谢谢,抱歉我的英语不好.

java jsf glassfish

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

仅在输入值时验证Rails3模型

我需要在我的rails3应用程序中验证名为phone_number的文件.此字段是可选的,但当用户输入phone_number时,我将检查格式.RSpec2测试运行正常但是当我转到sign_up视图并且没有触摸phone_number字段时,我变成"电话号码太短(最少6个字符)"和"电话号码无效"错误.

我的模特有什么问题?我的目标是验证phone_number,如果用户输入此号码,如果数字为空,我将在我的数据库中保存为零.

这是我的用户模型:

class User < ActiveRecord::Base
  belongs_to :address  
  accepts_nested_attributes_for :address

  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable, :lockable and :timeoutable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :confirmable, :lockable, :validatable

  # Setup accessible (or protected) attributes for your model
  attr_readonly :username
  attr_accessible :email, :password, :password_confirmation, :remember_me, :phone_number, :username, :newsletter, :address_attributes

  validates :username, :presence => true, :uniqueness => true, :length => {:minimum => 4, :maximum => 16 }, :format => { :with => /\A[a-z0-9][a-z0-9._-]*\z/i }
  validates :phone_number, …
Run Code Online (Sandbox Code Playgroud)

ruby validation ruby-on-rails-3

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

如何使轨道模型无效

我有一个独特产品的产品型号.因此,当用户购买此型号时,没有人可以再次购买,卖家不能与买家相同.

当我购买产品时,我称之为product.buy(买方)方法.但是当买方=卖方和date.sale!= nil时,此方法应该使模型无效.但这不起作用.我该如何解决?

   def buy(buyer)
    if self.user != buyer

      if self.date_sale.nil? 
        self.date_sale = Time.now
        self.buyer = buyer
      else
        # self.errors.add(:buyer, "article bougth") # Dont't work
      end             
    else
       # self.errors.add(:buyer, "seller can not buyer") # Dont't work
    end  
  end
Run Code Online (Sandbox Code Playgroud)

ruby validation ruby-on-rails

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